您似乎将异步 IO 与异步函数混淆了。node.js使用异步非阻塞 IO,因为非阻塞 IO 更好。理解它的最好方法是去看瑞安·达尔(ryan dahl)的一些视频。
如何为 Node 编写异步函数?
只需编写普通函数,唯一的区别是它们不会立即执行,而是作为回调传递。
我应该如何正确实现错误事件处理
通常,API 会给你一个回调,其中一个错误作为第一个参数。例如
database.query('something', function(err, result) {
if (err) handle(err);
doSomething(result);
});
是一种常见的模式。
另一种常见的模式是 。例如on('error')
process.on('uncaughtException', function (err) {
console.log('Caught exception: ' + err);
});
编辑:
var async_function = function(val, callback){
process.nextTick(function(){
callback(val);
});
};
上述函数调用时为
async_function(42, function(val) {
console.log(val)
});
console.log(43);
将异步打印到控制台。特别是在当前事件循环调用堆栈为空之后触发。该调用堆栈在运行后为空。因此,我们打印 43 个,然后是 42 个。42
process.nextTick
async_function
console.log(43)
您可能应该在事件循环上进行一些读取。