我在Promise.all
内传递了一个函数(返回一个诺言),但没有得到预期的输出
function first() {
Promise.all([fun, fun1, fun2])
.then(function(values) {
console.log(values);
})
.catch(e => console.log(e));
}
function fun() {
return new Promise((res, re) => {
res(console.log("dd"));
});
}
function fun1() {
return Promise.resolve(3);
}
function fun2() {
return 2;
}
//calling function here
first();
预期:[dd,3,2]
实际:[ [Function: fun], [Function: fun1], [Function: fun2] ]
答案 0 :(得分:2)
我已经在Promise.all内部传递了一个函数(返回一个承诺)
不正确。您应该传递该函数返回的promise。因此,如果 f 返回一个promise,而不是
Promise.all([fun, fun1, fun2])
你应该做
Promise.all([fun(), fun1(), fun2()])