【发布时间】:2012-11-28 02:54:54
【问题描述】:
我在 stackoverflow 上阅读了一些关于此主题的问题,但似乎没有一个回答我的疑问。
我知道如何使用process.nextTick 创建异步函数:
var async_function = function(val, callback){
process.nextTick(function(){
callback(val);
});
};
我也读过Promise,但是如何在不使用 process、Promise 等库的情况下编写异步非阻塞函数?
什么是原生方式?我首先想到了这种方法:
var async = function(val, cb) {
cb(val);
}
但是,该功能块:
async(3, function(val) {
console.log(val);
});
console.log(4);
// returns:
3
4
那么正确的实现是什么?如果不依赖这些库,我如何编写异步函数?
【问题讨论】:
-
我知道你真的不想要一个 API,但我最近偶然发现了这个关于 javascript 响应式扩展的视频,发现它很吸引人。为什么要重新发明轮子? channel9.msdn.com/Blogs/codefest/…
-
请记住,“异步”和“非阻塞”不是一回事。按照这些答案中的说明(
process.nextTick、setTimeout等),回调将异步触发,但一旦开始运行,它仍将阻塞事件循环。
标签: javascript node.js