javascript — обрабатывать несколько возвратов в функции

Обработка множественных возвратов по функции

Я использую Twilio для отправки SMS, и недавно я получил отзыв о том, как выполнять синхронные вызовы API, чтобы предотвратить ошибку «Too Many API Calls». (Асинхронному / жду)

Это мой код:

 const sendSMSAsyncFunc = async () ={amp}gt; { while (numberStart {amp}lt; numbersLen) { try { let maxNumbers = Math.min(numbersLen, numberStart   recipientAmount); for (let i = numberStart; i {amp}lt; maxNumbers; i  ) { let number = numbers[i]['phone_number'].replace(/[^d]/g, '') if (number.length {amp}gt; 10 {amp}amp;{amp}amp; number[0] === '1') { number = number.substring(1) cleanNumbers.push('1'   number) } else { cleanNumbers.push('1'   number) } if (i == maxNumbers - 1) { console.log("MESSAGE SENDING", i) var params = { 'body': `${event_sms_message}`, 'messagingServiceSid': 'XXXXXXX', 'to': cleanNumbers } console.log("Pre send message") await sendMessage(params, messageId) cleanNumbers = [] numberStart = numberStart   recipientAmount; } } }catch(e) { console.error(e); } } }; 

Функция отправки сообщения

 async function sendMessage(params, messageId) { return client.messages.create(params, function(err, data, message) { if (err) { console.log("ERROR:"); console.log(err) return 'done' } else { console.log("SUCCESS:"); console.log(data) return 'done' } }) .then(message ={amp}gt; console.log(message.sid) ); } 

Проблема в том, что я попытался отправить сообщение, и оно застряло в ошибке, вместо того, чтобы перейти к следующему «номеру», которое было в цикле ошибки.

Это заставляет меня думать, что возвращение «сделано», if (err) не работает. Есть ли способ выйти из функции без необходимости удаления первого возврата в функции client.messages.create() ??

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector