process.nextTick の呼び出しをどこで最初に見たのか思い出せません。ああ、公式の nodejs プロセス ドキュメントで見たはずです。当時、私はこれが何のためにあるのか理解していませんでした。setTimeout は既に存在していたのに、なぜこの関数が必要なのでしょうか。根本的に言えば、この関数は何をするのでしょうか? setTimeout と setTimeout の違いは何ですか?
私の問題を基本的に説明している非常に優れた投稿が stackoverflow にあります。ここにリンクを添付し、その例を示します:
stackoverflow.com >> Node の nextTick の適切な使用例は何ですか。 .js?
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); }
簡単に言えば、非同期モデルのため、一部のコードは必要な条件が完了する前に実行される可能性があるため、前提条件が必要なこれらのコードをコールバック関数に入れて、次のコードの最上位に配置します。イベントループ。この場合、これらのコードはすぐには実行されず、次のイベント ラウンドが開始されるまで待機し、開始後に実行されます。
Node.js での process.nextTick の使用例に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。