Node.js Promise.all与节点包

Node.js Promise.all与节点包,node.js,promise,Node.js,Promise,你好,我正在使用一个使用承诺的节点包 我想在一个数组中返回所有已解决的承诺,我听说您可以使用promise.all来完成此操作。 但我不知道如何在我的案例中实施它 到目前为止,我有: const characters = ['yoda','luke skywalker' ,'R2-D2']; client.search(<A CHARACTER FROM THE CHARACTER ARRAY>, options) .then(images => {

你好,我正在使用一个使用承诺的节点包

我想在一个数组中返回所有已解决的承诺,我听说您可以使用promise.all来完成此操作。 但我不知道如何在我的案例中实施它

到目前为止,我有:

const characters = ['yoda','luke skywalker' ,'R2-D2']; 


client.search(<A CHARACTER FROM THE CHARACTER ARRAY>, options)
    .then(images => {
        console.log(images)
    })
    .catch(error => console.log(error));
但是数据返回[未定义,未定义,未定义]
图像确实会返回一些东西。

您必须在承诺中提供一系列承诺。总之,不要对它们进行评估。试试这个

Promise.all(characters.map(char=>client.search(char,options)))
。然后(数据=>{
控制台日志(数据);
})

仍然是[undefined undefined],但只有一个有效。您尝试过我更新的答案吗?一分钟前就编辑好了是的我就是这么想的。包括花括号后,map函数不会返回承诺
const characters = ['yoda','luke skywalker' , 'R2-D2']

    Promise.all(characters.map(char => {
      client.search(char, options)
        .then(images => {
            console.log(images)
        })
        .catch(error => console.log(error));
    })).then(data => {
      console.log(data);
    })