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

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

WBOY
Freigeben: 2016-05-16 15:52:58
Original
1300 Leute haben es durchsucht

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 zum Stackoverflow, der im Grunde mein Problem erklärt. Hier füge ich den Link hinzu und gebe darin ein Beispiel:

stackoverflow.com >> Was sind die richtigen 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);
}
Nach dem Login kopieren

Um es einfach auszudrücken: Aufgrund des asynchronen Modells können einige Codes ausgeführt werden, bevor die von ihnen benötigten Bedingungen erfüllt sind. Fügen Sie diese Codes, die Vorbedingungen erfordern, in eine Rückruffunktion ein und setzen Sie dann „Gehe an den Anfang“ des nächsten Ereignisses Schleife. Dann werden diese Codes nicht sofort ausgeführt, sondern warten, bis die nächste Ereignisrunde gestartet wird, und werden nach dem Start ausgeführt.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage