Return 在所有 promises 解决之后
Return after all promises resolved
下面有一个代码示例,我想在所有承诺解决后从 'main' 函数返回 baz 变量。
exports.foo = function(bar) {
var baz;
// some kind of promises are here forming array of promises p
// some of promises may change the baz variable
Promise.all(p).then(() => {
// returning expression for main function is here
// return baz here // does not work
});
// return baz //cannot be done because it would be earlier than all the async promises are resolved
}
Promise 在 main returns 之后解决 ,因此 return 改为 baz 的 promise:
exports.foo = function(bar) {
var baz;
return Promise.all(p).then(() => baz);
}
exports.foo(3).then(baz => console.log(baz)).catch(e => console.error(e));
下面有一个代码示例,我想在所有承诺解决后从 'main' 函数返回 baz 变量。
exports.foo = function(bar) {
var baz;
// some kind of promises are here forming array of promises p
// some of promises may change the baz variable
Promise.all(p).then(() => {
// returning expression for main function is here
// return baz here // does not work
});
// return baz //cannot be done because it would be earlier than all the async promises are resolved
}
Promise 在 main returns 之后解决 ,因此 return 改为 baz 的 promise:
exports.foo = function(bar) {
var baz;
return Promise.all(p).then(() => baz);
}
exports.foo(3).then(baz => console.log(baz)).catch(e => console.error(e));