Вы уже используете асинхронный режим, поэтому используйте карту для возврата списка обещаний и ожидайте их всех с помощью Promise.all()
:
module.exports.shipments = async (event) => {
const axios = require("axios");
let data = JSON.parse(event.body);
let url = data.apiURL + "/api/1.1/wf/bulkshipments/initialize";
let patchURL = data.apiURL + "/api/1.1/obj/company/" + data.companyID;
let promises = data.shipments.map(item =>
axios.post(url, {
batchID: data.batchID,
companyID: data.companyID,
shipment: item})
})
);
await Promise.all(promises);
return {
statusCode: 200,
body: JSON.stringify({
message: 'Created successfully!',
totalShipments: data.shipments.length,
}, null, 2),
};
};
Чтобы каждый вызов ожидал,вместо одновременного запуска всех почтовых запросов используйте for ... of loop :
module.exports.shipments = async (event) => {
const axios = require("axios");
let data = JSON.parse(event.body);
let url = data.apiURL + "/api/1.1/wf/bulkshipments/initialize";
let patchURL = data.apiURL + "/api/1.1/obj/company/" + data.companyID;
for (let item of data.shipments) {
await axios.post(url, {
batchID: data.batchID,
companyID: data.companyID,
shipment: item})
});
}
await Promise.all(promises);
return {
statusCode: 200,
body: JSON.stringify({
message: 'Created successfully!',
totalShipments: data.shipments.length,
}, null, 2),
};
};