【发布时间】:2012-02-08 22:59:11
【问题描述】:
人们有时将下面的回调模式称为异步。
function beAsync(msg, cb){
cb(msg);
}
beAsync("a", function(msg){
console.log(msg);
});
console.log("b");
人们有时会说beAsync 允许其余代码运行,然后在它准备好时发生回调。
当我调用 beAsync 和像 fs.readFile 这样的真正异步函数时,最初必须有一些同步运行的代码,然后发生一些事情,允许 readFile 之后的代码其余代码是allowed 允许运行。
我所说的代表回调进入比 JavaScript 更低级别的循环是否正确?
因此对 beAsync 的修订将包含一个 setTimeout。
function beAsync(msg, cb){
setTimeout( function(){ cb(msg) }, 1);
}
所以 setTimeout 和 readFile 的内部可以与 JavaScript 所在的层对话? 在 JavaScript 中实现非阻塞代码的唯一方法是与这个较低层对话?
【问题讨论】:
标签: node.js asynchronous callback nonblocking