【发布时间】:2020-04-29 14:53:15
【问题描述】:
考虑以下情况:
// The caller
const returnValueEWGP = await generator.GenerateEightWeeks(
packageId
);
// The callee
GenerateEightWeeks = async packageId => {
let weekPromises = [];
// A lot of code , eventually we have array of promises "weekPromises" with data
await Promise.all(weekPromises)
.then(success => {
const numberOfZeros = success.filter(x => {
return x == 0;
}).length;
const numberOfOnes = success.filter(x => {
return x == 1;
}).length;
console.log(
`Before going back to Leads : Zeros : ${numberOfZeros} , Ones : ${numberOfOnes}`
);
return {
zeros: numberOfZeros,
ones: numberOfOnes
};
})
.catch(failed => {
return {
zeros: 1,
ones: 0
};
});
}
问题是returnValueEWGP 总是未定义。
如何将数据返回给调用代码?
【问题讨论】:
-
你能分享一下console.log的输出吗?
-
不要使用
then。awaitPromise.all的返回值,然后在那里对结果数组做一些事情。
标签: javascript node.js ecmascript-6 promise es6-promise