【发布时间】:2018-05-24 16:56:38
【问题描述】:
我正在使用 Promise.all 函数同时解决多个承诺。请参阅下面的代码 -
function check1() {
console.log('check 1 invoked')
return new Promise((resolve, reject) => {
setTimeout(()=> resolve('check1'), 4000);
})
}
function check2() {
console.log('check2 invoked')
return new Promise((resolve, reject) => {
setTimeout(()=> resolve('check2'), 4000);
})
}
var arr = [check1(), check2()];
Promise.all(arr)
.then((response) => console.log('response======>',response))
.catch((error) => console.error('error',error))
上述方法的问题在于,当我创建 promise 数组时,会调用相应的函数。我想以两个函数仅从 promise.all 函数调用的方式更改上述代码。
注意 - 需要将 promise 函数存储在数组中。就像我在做 var arr 一样。
【问题讨论】:
-
arr = [ check1, check2 ]; Promise.all( arr.map( a => a() ).then ...? -
check1()调用check1函数。那不是你想要的。你想要一个函数的reference,这样promise 可以稍后调用它。你可以通过简单地省略()来得到它。
标签: javascript promise