使用map for Promise.all返回嵌套在then块中的promises时未定义的数组

Ham*_*had 2 javascript arrays function promise ecmascript-6

我有个问题.我目前正在学习如何使用promises,但我遇到了一个问题,经过大量搜索后我找不到答案.我正在尝试使用map来获取一个promises数组,这些promises是在Promise.all中处理的then块的结果,但是以下不起作用,这里出了什么问题?

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
Run Code Online (Sandbox Code Playgroud)

Jac*_*ord 5

你的map函数没有返回任何东西,只有你的then函数:

let promises = myArray.map(result => 
    {
        return searchPromise(result.type).then((searchReply) => 
        {
            return processReply(result, searchReply)
        });
    }
);
Run Code Online (Sandbox Code Playgroud)

或者,省略注释中所述的花括号,以强制返回:

let promises = myArray.map(result => 
    searchPromise(result.type).then((searchReply) =>  processReply(result, searchReply)
 ));
Run Code Online (Sandbox Code Playgroud)