我有一个问题。我目前正在学习如何使用 promise ,但遇到了一个问题,经过大量搜索后我还没有找到答案。我正在尝试使用 map 获取 Promise.all 中处理 then block 的结果的 Promise 数组,但以下内容不起作用,这里出了什么问题?
let promises = myArray.map(result =>
{
searchPromise(result.type).then((searchReply) =>
{
return processReply(result, searchReply)
});
}
);
Promise.all(promises).then(c => console.log(c)); //array of Undefined, but
//want to get results from
//processReply function
最佳答案
您的 map
函数不返回任何内容,仅返回您的 then
函数:
let promises = myArray.map(result =>
{
return searchPromise(result.type).then((searchReply) =>
{
return processReply(result, searchReply)
});
}
);
或者,按照注释中的说明省略大括号,以强制返回:
let promises = myArray.map(result =>
searchPromise(result.type).then((searchReply) => processReply(result, searchReply)
));
关于javascript - 当返回嵌套在 then block 中的 Promise 时,使用 Promise.all 的 map 会返回未定义的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54953598/