Nodejs 有一种方法process.nextTick(fn)
可以将函数的执行延迟到下一个刻度。根据这篇文章,这可用于在这样的对象的构造函数中发出事件(从 artice 复制):
function StreamLibrary(resourceName) {
var self = this;
process.nextTick(function() {
self.emit('start');
});
}
var stream = new StreamLibrary('fooResource');
stream.on('start', function() {
console.log('Reading has started');
});
没有process.nextTick
这个是行不通的,因为在你有机会监听事件之前事件就已经发出了。但是,如何确定在添加事件侦听器之前不会发出事件?如果它是完全异步的,则有可能在构造函数结束之前执行下一个刻度,因此忽略事件侦听器。那么这个过程背后的规则是什么?node什么时候执行nextTick?