我已经创建了一个地图,但 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);
预先有一部分将所有需要的参数添加到数组中。
答案 0 :(得分:0)
不要混淆 await
和 then
并返回 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);
});
});
};