我是进入系统的(相对)节点新手,社区中所有的热情都是“只需编写回调,一切都是异步的和事件驱动的,别担心!” 让我对单个程序中的控制流感到有些困惑(或者在更节点的术语中,在更大的程序中处理单个请求期间的控制流)
如果我在节点下运行以下程序
var foo = function(){
console.log("Called Foo");
};
var bar = function(){
console.log("Called Bar");
};
var doTheThing = function(arg1, callback){
callback();
};
doTheThing(true, function() {
foo();
});
bar();
之后有没有机会foo
执行?当我在本地通过命令行运行程序时,它总是 bar
Called Foo
Called Bar
但是我看到很多善意的布道者发出的警告,比如不要假设你的回调会在你认为它会被调用时被调用,我不清楚他们是否只是在警告我关于库实现细节,或者 node.js 是否会被调用。当您使用函数对象作为参数时,js 会做一些奇怪/特殊的事情。