您似乎混淆了异步IO和异步函数. node .js使用异步非阻塞IO,因为非阻塞IO更好.理解它的最好方法是go 看瑞安·达尔的一些视频.
How do I write asynchronous functions for Node?
只需编写普通函数,唯一的区别是它们不会立即执行,而是作为回调传递.
How should I implement error event handling correctly
通常,API会给您一个回调,第一个参数是err.例如
database.query('something', function(err, result) {
if (err) handle(err);
doSomething(result);
});
这是一种常见的模式.
另一个常见的模式是on('error')
.例如
process.on('uncaughtException', function (err) {
console.log('Caught exception: ' + err);
});
Edit:
var async_function = function(val, callback){
process.nextTick(function(){
callback(val);
});
};
上述函数调用为
async_function(42, function(val) {
console.log(val)
});
console.log(43);
将以异步方式将42
打印到控制台.尤其是在当前eventloop调用堆栈为空后触发process.nextTick
.async_function
和console.log(43)
运行后,调用堆栈为空.所以我们先打印43,然后打印42.
您可能应该阅读一下事件循环.