Является ли это приемлемым способом избежать ада обратных вызовов в старых версиях узла? - PullRequest
0 голосов
/ 18 октября 2018

Без обещаний, без асинхронных операций и т. Д. Я задавался вопросом, является ли этот шаблон приемлемым - моя функция вызывается, и мне передается обратный вызов.Мне нужно сделать 2 вещи, прежде чем я смогу перезвонить:

function doSomething(..args.., callbackThatNeeds1And2DoneFirst){

    var done1 = false;
    var res1 = someAsync1(function call1callback(){ 
      //blah
      done1 = true;

      maybeComplete();
    });

    var done2 = false;
    var res2 = someAsync2(function call2callback(){ 
      //blah
      done2 = true;

      maybeComplete();
    });

    function maybeComplete(){
      if(done1 && done2){
        callbackThatNeeds1And2DoneFirst();
      }
    }

}

Я полагаю, что вопросы касаются области действия переменной - могут ли множественные "одновременные" исполнения мешать значениям друг друга для done1 и done2, или каждыйВызов получить свою собственную переменную области видимости?

1 Ответ

0 голосов
/ 18 октября 2018

Да, этот шаблон в порядке.Он делает в основном то, что делает Promise.all сегодня, за исключением того, что он работает ровно для двух асинхронных обратных вызовов, но не является переменной величиной.

Могут ли множественные «одновременные» исполнения мешать значениям друг друга для done1 иdone2, или каждый вызов получает собственную область видимости переменной?

Каждый вызов doSomething создает новую область видимости с новыми done1 и done2 переменными.

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