【发布时间】:2014-07-16 00:05:21
【问题描述】:
我有一个函数 foo 调用另一个函数 moreFoo 并且我想将函数调用包装在 Promise 中,以便 foo返回 Promise > 在 moreFoo 解决后返回。这是我的解决方案:
function foo() {
var defer = $q.defer();
console.log('doing foo');
moreFoo().then(defer.resolve);
return defer.promise;
}
function moreFoo() {
var defer = $q.defer();
setTimeout(function() {
console.log('doing more foo');
defer.resolve();
}, 2000);
return defer.promise;
}
foo().then(function() {
console.log('finished with all foos');
});
然后输出:
doing foo doing more foo finished with all foos
它似乎按预期工作。这是链接这些承诺的正确/最佳方式吗?
【问题讨论】:
-
您对“正确/最佳”的标准是什么?
标签: javascript angularjs promise chaining angular-promise