process.nextTick の呼び出しをどこで最初に見たのか思い出せません。ああ、公式の nodejs プロセス ドキュメントで見たはずです。当時、私はこれが何のためにあるのか理解していませんでした。setTimeout はすでに存在していたのに、なぜこの関数が必要なのでしょうか。根本的に言えば、この関数は何をするのでしょうか? setTimeout と setTimeout の違いは何ですか?
私の問題を基本的に説明している非常に優れた投稿が stackoverflow にあります。ここにリンクを添付し、その中に例を示します。
stackoverflow.com >> Node.js での process.nextTick の適切な使用例は何ですか?
var MyConstructor = function() { ... process.nextTick(function() { self._continue(); }); }; MyConstructor.prototype.__proto__ = EventEmitter.prototype; MyConstructor.prototype._continue = function() { // without the process.nextTick // these events would be emitted immediately // with no listeners. they would be lost. this.emit('data', 'hello'); this.emit('data', 'world'); this.emit('end'); }; function(req, res, next) { var c = new MyConstructor(...); c.on('data', function(data) { console.log(data); }); c.on('end', next); }
簡単に言うと、非同期モデルのため、一部のコードは必要な条件が完了する前に実行される可能性があるため、前提条件が必要なコードをコールバック関数に入れて、次のイベントの先頭に Go を置きます。ループ。この場合、これらのコードはすぐには実行されず、次のイベント ラウンドが開始されるまで待機し、開始後に実行されます。