Я разрабатываю веб-приложение, в котором текстовые сообщения должны отправляться нескольким пользователям после отправки формы. Я создал цикл for, который перебирает все числа и отправляет сообщения, используя асинхронный водопад. Но проблема в том, что вызовы функций внутри цикла for асинхронны, цикл for завершается и вызывается res.end()
. Следовательно, все res.write();
функции внутри не имеют, поскольку ответ уже закрыт. Как я могу ждать, пока все обратные вызовы из функций внутри цикла for будут выполнены для завершения ответа.
res.write("Delivery note issued successfully")
res.write("Sending text messages....")
let api = '000000000000'
for(let i = 0; i < textMessageNumbers.length; i++) {
res.write("Sending to " + textMessageNumbers[i])
async.series([
function(callback) {
request('https://api_link?destination=' + textMessageNumbers[i] + '&q=' + api + '&message=' + textMessage, { json: true }, callback)
}
], function(err, data) {
if(err) {
res.write("Error occurred while sending text message to " + textMessageNumbers[i])
}
if(data[0].body == 0) {
res.write("Text message sent successfully to <b>" + textMessageNumbers[i] + "</b>")
} else {
res.write("Couldn't send message to <b>" + textMessageNumbers[i] + "</b>")
}
})
}
res.write("Delivery Note Successfull")
res.end()