Javascript 在承诺链中等待所有承诺
有没有一种方法可以在承诺链中等待所有承诺?我发现了Promise.all()函数用于等待一系列承诺,但我无法让它工作 我有一个大概是这样的Javascript 在承诺链中等待所有承诺,javascript,promise,Javascript,Promise,有没有一种方法可以在承诺链中等待所有承诺?我发现了Promise.all()函数用于等待一系列承诺,但我无法让它工作 我有一个大概是这样的 var returnPromise2; var returnPromise1 = function1ThatReturnsAPromise.then( function onSuccess(array) { console.log("First function finished"); }).then( function (va
var returnPromise2;
var returnPromise1 = function1ThatReturnsAPromise.then(
function onSuccess(array) {
console.log("First function finished");
}).then( function (value) {
returnPromise2 = function2ThatReturnsAPromise(value);
});
return [returnPromise1, returnPromise2];
因此,在我的调用代码中,如果我执行Promise.all(arrayOfPromises)
操作,我可以从returnPromise1获得值,但不能从第二个得到值。问题是在返回时,returnPromise2
仍然为空
任何关于如何实现这一点的技巧都值得赞赏。当在处理程序中时。然后()
如果您希望将其链接到链中并使其价值成为实现的价值,则必须返回承诺
虽然从你的问题上我并不完全清楚你想要实现什么,但似乎你想做的是:
function1ThatReturnsAPromise().then(function(array) {
console.log("First function finished");
return array;
}).then(function(value) {
return function2ThatReturnsAPromise(value);
}).then(function(finalValue) {
// you can process the finalValue here which will be the last
// value returned or the fulfilled value of the last promise returned
});
如果您想从多个承诺中积累价值,那么有几种不同的设计模式。以下是之前的答案,展示了几种不同的方法
添加了对其他答案的参考,说明如何累积结果。谢谢,我将尝试一下,如果这不是我想做的,请重新计算问题。