Я хочу отправлять разные SMS разным людям, и каждый вызов для отправки SMS должен быть синхронным, я реализовал функцию асинхронного ожидания, чтобы моя функция работала так, но по какой-то причине она работает не так, как ожидалось.
Вот мой код:
После запроса для квалифицированных пользователей,
if(userQualifies) {
try{
await insertIntoTable();
} catch(err) {
console.log(err);
}
}
async function insertIntoTable(){
try{
await db.any(QUERY TO INSERT)
.then(async function(idCreated){
try{
var params = {
'messagingServiceSid': 'XXXXXXXXXX',
'to': ['1' + phone],
'body': message,
}
await sendMessage(params);
}catch(error){
console.log(error);
}
})
} catch(err){
console.log(err);
}
}
async function sendMessage(params) {
console.log('Im on sendMessage');
return client.messages.create(params)
.then( msg => {
console.log("SUCCESS:");
})
.catch(err => {
console.log("ERROR:");
});
console.log("message sent");
return 'done';
}
при выполнении этого я получаю журнал Im on sendMessage
после вставки в таблицу, ноон не отправляет сообщение, он игнорирует возврат функции sendMessage()
и отправляет все сообщения в конце одновременно.
Я что-то упустил, чтобы заставить его отправить сообщение при переходе от insertIntoTable()
к sendMessage()