Я пытаюсь сделать несколько постов с помощью axios. Когда я использую следующий код, он заканчивает публикацию последней вещи, помещенной в массив, i раз.
async sendMessage(req) {
let axiosArray = [];
const loopCount = req.chasm.attachments.length || 1;
for (let i = 0; i < loopCount; i += 1) {
let chatResponse = req.chasm.chatResponse;
if (i > 0 && req.chasm.attachments[i]) {
chatResponse.attachments = req.chasm.attachments[i];
}
const newPromise = axios({
method: 'post',
url: this.serviceUri,
data: chatResponse,
});
axiosArray.push(newPromise)
}
await axios
.all(axiosArray)
.then(axios.spread((...responses) => {
responses.forEach(res => console.log('Success'));
}))
.catch((err) => {
console.log('sendMessage catch error', err);
});
}
}
Это происходит одинаково, независимо от того, есть ли асинхронное ожидание или нет. Однако, если я переместу await внутри цикла, что ESLint говорит мне не делать, const newPromise = await axios({
он будет работать, как и ожидалось. У меня такое ощущение, что это не правильный ответ, а скорее, что есть лучший способ структурировать его, которого я не вижу. Есть мысли?