【发布时间】:2014-07-21 07:48:33
【问题描述】:
我有包含定时动画的函数,我希望这些函数在前一个函数完成后一个接一个地运行。
function a() {
var i = 0;
var x = setInterval(function () {
console.log('a' + i);
if (i == 3) {
console.log('Done @' + i);
clearInterval(x);
return true;
}
i++;
}, 1000);
}
function b() {
var c = 0;
var y = setInterval(function () {
console.log('b' + c);
if (c == 1) {
console.log('Done 2 @' + c);
clearInterval(y);
return true;
}
c++;
}, 1000);
}
a().then(b());
我想要达到的效果是这样的:
a0
a1
a2
a3
Done @3
b0
b1
Done 2 @1
但它停在Done @3。我正在寻找任何其他方法来实现这一目标。
【问题讨论】:
-
a()需要返回一个带有then方法(承诺)的对象,您的代码才能正常工作。你的实现什么都不返回,所以then什么都不做,b()永远不会被调用。
标签: javascript queue