因此Promise.all将数组作为值传递给函数,我宁愿将数组值作为参数传递。

假设我有这个功能:

function printData(a,b,c){
   console.log(a,b,c)
}

我想
Promise.all([1,2,3]).then(printData)
>> [1,2,3] undefined undefined

改为打印此
>> 1 2 3

有没有更好的方法做到这一点:
Promise.all([1,2,3,4]).then(function(values){printData.apply(null, values)})

使用价差运算符?

我也试过了
Promise.all([1,2,3]).then(printData.apply)

但它返回一个错误

最佳答案

使用ES 6的一种方法分解

function printData(a,b,c){
   console.log(a,b,c)
}

Promise.all([1,2,3]).then( data => {var [a,b,c] = data;
                           printData(a,b,c);});



使用ES 6 扩展语法

function printData(a,b,c){
   console.log(a,b,c)
}

Promise.all([1,2,3]).then(data => printData(...data))

09-07 23:19