ホームページ > ウェブフロントエンド > jsチュートリアル > Node.js_node.js での Process.nextTick の使用例

Node.js_node.js での Process.nextTick の使用例

WBOY
リリース: 2016-05-16 15:52:58
オリジナル
1332 人が閲覧しました

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 を置きます。ループ。この場合、これらのコードはすぐには実行されず、次のイベント ラウンドが開始されるまで待機し、開始後に実行されます。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート