#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);
Как я уже упоминал, ваш блок кода выглядит как эмуляция другого языка в javascript. Чего вы пытаетесь достичь с точки зрения высокого уровня? Возможно, есть лучший способ справиться с этим.