【发布时间】:2015-03-17 00:24:52
【问题描述】:
假设我有 2 个承诺 promise1, promise2 会异步执行某些操作。
promise2 依赖于 promise1 在运行之前完成。这很容易。
function runPromises(){
return promise1().done(function(){
promise2();
});
}
问题是我也想知道他们什么时候都完成了。
runPromises().done(function(){
alert("promise 1 and 2 done");
});
当前 runPromises 会在 promise1 未完成时发出警报。
【问题讨论】:
-
如果promise2只有在promise1完成后才能启动,那你就不能等2完成吗?
-
需要返回 promise2() 吗?
-
我尝试返回 promise2() 并得到了
TypeError: Cannot read property 'done' of undefined。我相信在这种情况下 runPromises 在 promise1 完成之前不会是一个承诺,因此会导致它未定义。