因此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))