承诺使用当时的链接

时间:2014-12-15 10:57:14

标签: javascript angularjs promise

在解决从c返回的承诺之前是否调用了函数b

function a() {
 var d = $q.defer();
 setTimeout(function() { d.resolve(); }, 10000);
 return d.promise;
}

function b() {
 var d = $q.defer();
 setTimeout(function() { d.resolve(); }, 10000);
 return d.promise;
}

function c() {
 var d = $q.defer();
 setTimeout(function() { d.resolve(); }, 10000);
 return d.promise;
}

a().then(b).then(c);

2 个答案:

答案 0 :(得分:2)

简单否定必须首先解决承诺b以执行c。

答案 1 :(得分:0)

没有。如果提供给Promise.then的函数(返回承诺A)返回Promise(承诺B),则A等待B成为{{1}}在解决之前解决了。 (See documentation.