function getMyFunction(data) {
return () => new Promise((resolve, reject) => {
resolve('here is the value:', data);
});
}
const myFunction = getMyFunction('a');
Promise.all([
myFunction,
]).then((result) => {
console.log('result: ', result);
});
我期待result: here is the value: a
,但我得到result: [ [Function] ]
。
答案 0 :(得分:1)
getMyFunction
会返回一个返回承诺的函数,因此您需要调用myFunction
来获取承诺:
const myFunction = getMyFunction('a');
Promise.all([
myFunction(), // <-- note here
]).then((result) => {
console.log('result: ', result);
});
答案 1 :(得分:1)
getMyFunction
符合名称的意思:它会为您提供功能。它没有调用它。 Promise.all
期待一个承诺。您必须调用该函数才能获得承诺。
你可能希望它是getMyPromise
并让它实际返回promise,而不是一个函数,因为Promise.all
的本质是事物并行运行(我假设你&# 39; ll有一个函数;否则,根本没有指向Promise.all
:
function getMyPromise(data) {
return new Promise((resolve, reject) => {
resolve('here is the value: ' + data);
});
}
Promise.all([
getMyPromise('a'),
getMyPromise('b'),
getMyPromise('c')
]).then((result) => {
console.log('result: ', result);
});
&#13;