Promise.all()基于返回Promises的函数

时间:2018-12-08 14:26:31

标签: javascript promise

我正在尝试将Promise.all()与封装在函数上的Promises一起使用:

function fn1(val){

    return new Promise((resolve, reject) => {  

       /* promise body */        
    });    
}


function fn2(val){

    return new Promise((resolve, reject) => {  

       /* promise body */        
    });    
}



fn1(data)
.then((val) => fn2(val))
.catch((error) => alert(error)



Promise.all([fn1, fn2]).then(() => alert("Done!"))

这似乎是不可能的,因为Promise.all([fn1, fn2])直接执行而不是等待成功的承诺。

我知道我可以将另一个.then()链接到 thenable 结构,但是我想知道是否有任何方法可以在包含Promises的上下文中使用Promise.all()功能。

1 个答案:

答案 0 :(得分:1)

Promise.allArray的{​​{1}}。

由于您的函数返回了Promise,因此您可以在声明Promise数组的同时调用这些函数,并且Promise将对其进行替换

Promise.all