Heim  >  Artikel  >  Web-Frontend  >  Beispiel für die Verwendung von Process.nextTick in Node.js

Beispiel für die Verwendung von Process.nextTick in Node.js

高洛峰
高洛峰Original
2016-12-26 09:16:301529Durchsuche

Ich kann mich nicht erinnern, wo ich den Aufruf von „process.nextTick“ zum ersten Mal gesehen habe. Oh, ich hätte ihn im offiziellen NodeJS-Prozessdokument sehen sollen. Zu diesem Zeitpunkt verstand ich nicht, wofür dieses Ding gedacht war. Wir hatten bereits setTimeout. Warum brauchten wir diese Funktion? Und was macht diese Funktion im Grunde? Was ist der Unterschied zwischen setTimeout und setTimeout?

Es gibt einen sehr guten Beitrag zu Stackoverflow, der im Grunde mein Problem erklärt. Hier füge ich den Link hinzu und gebe dann das Beispiel darin:

stackoverflow.com >> Anwendungsfälle für Process.nextTick in Node.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);
}

Einfach ausgedrückt: Aufgrund des asynchronen Modells kann ein Teil des Codes ausgeführt werden, bevor die erforderlichen Bedingungen erfüllt sind. Fügen Sie also diese Codes ein, die Vorbedingungen erfordern eine Rückruffunktion und platzieren Sie sie dann auf der obersten Ebene der nächsten Ereignisschleife. Dann werden diese Codes nicht sofort ausgeführt, sondern warten, bis die nächste Ereignisrunde gestartet wird, und werden nach dem Start ausgeführt.

Weitere Artikel zu Beispielen für die Verwendung von „process.nextTick“ in Node.js finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn