javascript функция в очереди выполнения функций - PullRequest
0 голосов
/ 02 августа 2020

Я новичок в javascript. В моем проекте React Native я использую response-native-get-sms- android. Первая функция работает. Мне нужно синхронизировать c две функции. Как мне это сделать?

const Sent_SMS = (SMS_Rows) => {
var SetSent = [];
var last = false;
for (let i = 0; i < SMS_Rows.length; i++) {
    
    if(i==SMS_Rows.length-1)
       last=true;

    SmsAndroid.autoSend(
        JSON.stringify(SMS_Rows[i]['phone']),
        SMS_Rows[i]['message'],

        (fail) => {
            //console.log('Failed with this error: ' + fail);
        },
        (success) => {
            //console.log('SMS sent successfully');
            SetSent.push(SMS_Rows[i]['id']);
            if (last==true) {
                console.log(SetSent);
            }
        },

    );
}

}

мой вывод true, true, true, true

1 Ответ

0 голосов
/ 02 августа 2020

Перенести лог c внутрь для l oop в отдельную функцию.

function sendSMS(SMS_Rows, i){
  SmsAndroid.autoSend(
        JSON.stringify(SMS_Rows[i]['phone']),
        SMS_Rows[i]['message'],

        (fail) => {
            //console.log('Failed with this error: ' + fail);
        },
        (success) => {
            //console.log('SMS sent successfully');
            SetSent.push(SMS_Rows[i]['id']);
            if (i == SMS_Rows.length - 1) {
                console.log(SetSent);
            }
        },

    );
}
for (let i = 0; i < arr.length; i++) {
  sendSMS(SMS_Rows, i);
}

Протестировано. console.log будет активирован после последнего SMS-сообщения. Сообщите, если работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...