在vanilla Javascript中使用async/await的顺序承诺

在vanilla Javascript中使用async/await的顺序承诺,javascript,Javascript,我想知道如何解决使用异步按顺序运行承诺数组的问题,但具体来说,如何将解析值从一个函数传递到下一个函数 到目前为止,我看到的所有示例都显示了如下内容: const value = await foo(); const value2 = await bar(value); let fnArray = [foo, bar, baz]; let lastResult; for(let i = 0; i < fnArray.length; i++) { lastResult = aw

我想知道如何解决使用异步按顺序运行承诺数组的问题,但具体来说,如何将解析值从一个函数传递到下一个函数

到目前为止,我看到的所有示例都显示了如下内容:

const value = await foo();
const value2 = await bar(value);
let fnArray  = [foo,  bar, baz];
let lastResult;
for(let i = 0; i < fnArray.length; i++) {
     lastResult = await fnArray[i](lastResult);
}
我更愿意从一个数组中按顺序运行它们,但不确定如何在它们之间传递返回值,因为我在这里尝试使用vanilla js async。

将它们包装在一个数组中。然后

把它们包在包里,然后


您可以创建如下所示的管道:

const value = await foo();
const value2 = await bar(value);
let fnArray  = [foo,  bar, baz];
let lastResult;
for(let i = 0; i < fnArray.length; i++) {
     lastResult = await fnArray[i](lastResult);
}

您可以创建如下所示的管道:

const value = await foo();
const value2 = await bar(value);
let fnArray  = [foo,  bar, baz];
let lastResult;
for(let i = 0; i < fnArray.length; i++) {
     lastResult = await fnArray[i](lastResult);
}

你说的“全部”和“顺序”是什么意思?我的意思是要得到值2,我需要先得到值。但我想从一系列承诺函数(即[foo,bar])中运行它们。我目前有两个,但我可能想通过10个函数的序列运行它们,每个函数转换输入并将转换后的数据传递给下一个函数,直到数据已经运行完的arrayPossible duplicate中的所有函数,据我所知,它不使用vanilla JS,因为它使用RSVP、Q等,而且它只是调用函数,它似乎没有在for循环中显示返回的值。你说的“全部在一起”和“顺序”是什么意思?我的意思是要得到value2,我需要先得到value。但我想从一系列承诺函数(即[foo,bar])中运行它们。我目前有两个,但我可能想通过10个函数的序列运行它们,每个函数转换输入并将转换后的数据传递给下一个函数,直到数据已经运行完的arrayPossible duplicate中的所有函数,据我所知,它不使用vanilla JS,因为它使用RSVP、Q等,另外,它只是调用函数,似乎没有在for循环中显示返回的值。您建议的是OP已经在做什么,只是没有使用wait.with。然后您等待调用函数的结果;您所建议的是OP已经在做的事情,只是没有使用wait.with。然后您等待前面调用的函数的结果;这看起来是一个很好的解决方案,将尝试一下,谢谢!这看起来是一个很好的解决方案,将尝试一下,谢谢!