我有两个函数(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();
};
但是,该函数未被调用。我在这里错过了什么?我理解,因为代码是异步的,所以在我第一次尝试时不会一个接一个地调用这些函数。我是对的吗?
谢谢!
答案 0 :(得分:2)
如果你想确保一个接一个地调用一个东西,试试这个:
cb();
process.nextTick(cb1);
就像我提到的,您的代码块感觉就像在javascript中模拟不同的语言一样。从高层的角度来看,你想要达到什么目的?可能有更好的方法来解决这个问题。