Nodejsにはprocess.nextTick(fn)
、次のティックまで関数の実行を遅らせるメソッドがあります。この記事によると、これを使用して、次のようなオブジェクトのコンストラクターでイベントを発行できます(アーティスからコピー)。
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
、イベントを聞く機会が得られる前にイベントが発行されていたため、機能しませんでした。ただし、イベントリスナーを追加する前に、イベントが発行されないことをどのように確認できますか?完全に非同期の場合、コンストラクターが終了する前に次のティックが実行される可能性があるため、イベントリスナーは無視されます。では、このプロセスの背後にあるルールは何ですか?ノードはいつnextTickを実行しますか?