Promise.all 不等待 array.map 解决

时间:2020-12-29 12:15:22

标签: node.js

我已经创建了一个地图,但 Promise.all 在继续之前没有等待地图解析。

const newMessage = async (params) => {
await new Promise((resolve, reject) => {
    console.log('sending')
    sqs.sendMessage(params, function (err, data){
        if (err){
            console.error(err);
            reject(err);
        }
        console.log('Sent')
        resolve(data);
    }).promise();
}).then((data => {
    return data;
}));
};

const promise = messageData.map(newMessage);
await Promise.all(promise);

预先有一部分将所有需要的参数添加到数组中。

1 个答案:

答案 0 :(得分:0)

不要混淆 awaitthen 并返回 new Promise

const newMessage = async (params) => {
  return new Promise((resolve, reject) => {
    console.log('sending')
    sqs.sendMessage(params, function (err, data){
        if (err){
            console.error(err);
            reject(err);
        }
        console.log('Sent')
        resolve(data);
    });
  });
};