如何在Javascript中以过程化的方式运行一个又一个语句
How to run one statement after another in a procedural manner in Javascript?
假设我们有一个简单的场景,我想在1秒后重复输出"Hello",然后输出"World"。我尝试过以下几种:
setInterval(
function() {
console.log("Hello");
setTimeout(
function() {
console.log("World");
},
1000
);
},
1000
);
但它不起作用,在setInterval
的第二次交互时,console.log
同时输出Hello World。
我做错了什么?
外部间隔应为2秒。
这不是你问题的直接答案,但我认为它在你的情况下很有用,
我创建了一个queue runner
函数,它需要一段时间后运行的函数列表
功能:
- 您可以向队列中添加任意数量的函数
- 您可以设置是运行一次队列还是重复该序列
- 仅使用
setInterval
函数而不使用setTimeout
定义:
var queue = function ( /* Array<function> */ fn, /* int */ timeout, /* boolean */ repeat) {
return function () {
var i = 0,
f = fn[i],
t = setInterval(function () {
f();
if (fn[i + 1] !== undefined) {
f = fn[++i];
} else {
if (repeat) {
i = 0;
f = fn[i];
} else {
clearInterval(t);
}
}
}, timeout);
}
}
你这样称呼它:
var fn = [function(){console.log('A')}, function(){console.log('B')}];
queue(fn, 1000, true)();
JSFIDDLE:
你可以查看jsfiddle希望能帮上忙☺
相关文章:
- 如何加载/构建 Chrome 应用/扩展程序并以编程方式运行
- AJAX 以多线程方式运行
- 是什么导致这个JavaScript代码以它的方式运行
- 如何在Javascript中以过程化的方式运行一个又一个语句
- 以类似命令的方式运行 NodeApp
- 为什么我的保证金上限没有按应有的方式运行
- 以不同的方式运行JavaScript函数
- 以编程方式运行摩卡时的访问结果
- 优雅的方式运行大量异步“;事物;当总数为'直到第一个“;事物;退货
- Ember.js视图助手绑定没有按预期的方式运行
- {javascript} JS代码以意外的方式运行
- 简单的javascript for循环没有按照我认为的方式运行
- 有没有一种方法可以通过Firebug中的快捷方式运行JavaScript代码?
- 动画没有按照设定的方式运行
- 如何以编程方式运行node . js应用程序
- 为什么substring方法会以这种方式运行?
- Mocha:在以编程方式运行Mocha时获取stacktrace
- 是否可以将标志传递给 Gulp 以使其以不同的方式运行任务
- 画布绘制函数以异步方式运行
- OnSubmit 是按提交表单的每种方式运行,还是仅在单击“提交”按钮时运行