【发布时间】:2015-09-29 21:02:00
【问题描述】:
我知道 Promise 可以被链接起来,如下例所示:
// we also have deferA, deferB and deferC as the corresponding defer objects
promiseB = promiseA.then(function(result) {
// do stuff to resolve B
});
promiseC = promiseB.then(function(result) {
// do stuff to resolve C
});
现在如果我调用deferA.resolve(data),这将解析promiseA,它的then 方法将运行,然后promiseB 被解析。最后 promiseB 的then 将运行并解析promiseC。平淡而简单(希望我做对了)。
但是,如果 Promise 与自身链接会发生什么?
如果我把上面的例子改成这样:
// we also have deferA and deferB as the corresponding defer objects
promiseA = promiseA.then(function(result) {
// do stuff to...?
});
promiseB = promiseA.then(function(result) {
// do stuff to resolve B
});
deferA.resolve(data);
现在会发生什么?执行顺序是什么?
再说了,这个呢:
// we also have deferA and deferB as the corresponding defer objects
promiseA = promiseA.then(function(result) {
// do stuff to...?
});
deferA.resolve(data);
promiseB = promiseA.then(function(result) {
// do stuff to resolve B
});
在这种情况下会发生什么?
【问题讨论】:
-
What would happen.. 你不能将这些记录到控制台并找出来吗? -
@charlietfl 当然可以,但我问的是它背后的逻辑和顺序。
标签: javascript angularjs promise angular-promise