Node.js : Как вызвать function2 после function1?

#javascript #node.js

#javascript #node.js

Вопрос:

У меня есть две функции (cb() и cb1 ()), которые нужно вызывать одну за другой.

Если я просто сделаю cb(); cb1(); , это не сработает, поэтому я попытался вызвать, cb1(); когда cb(); завершится, как это:

  cb = function(err) {
    if (err)
    die(err);
    else if (next < cmds.length){
    cmds[next  ].apply(this, Array.prototype.slice.call(arguments).slice(1));
    console.log(next);
    }
    else 
    cb1();
};
  

Однако функция не вызывается. Чего мне здесь не хватает? Я понимаю, что, поскольку код является асинхронным, функции не вызываются одна за другой при моей первой попытке. Я прав?

Спасибо!

Комментарии:

1. Такой стиль кодирования выглядит чуждым javascript. Я подозреваю, что есть лучший способ сделать то, что вы хотите сделать.

Ответ №1:

Если вы хотите убедиться, что одна вещь вызывается после другой, попробуйте это :

 cb();
process.nextTick(cb1);
  

process.nextTick

Как я уже упоминал, ваш блок кода выглядит как эмуляция другого языка в javascript. Чего вы пытаетесь достичь с точки зрения высокого уровня? Возможно, есть лучший способ справиться с этим.