在香草Javascript中使用异步/等待的顺序承诺

时间:2018-10-08 07:53:31

标签: javascript

我想知道如何解决使用异步按顺序运行承诺数组的问题,特别是如何将解析后的值从一个函数传递到下一个函数。

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

const value = await foo();
const value2 = await bar(value);

我希望从一个数组开始依次运行它们,但是只是不确定如何在它们之间传递返回的值(因为我在这里尝试使用香草js异步)。

2 个答案:

答案 0 :(得分:2)

您可以这样创建管道:

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

答案 1 :(得分:1)

将它们包装在.then()

foo()
    .then(valueFoo => bar(valueFoo))
    .then(valueBar => AnotherFunc(valueBar))
    .catch(e => { console.log(e)})