Funktion in regelmäßigen Abständen rekursiv aufrufen

Ich habe mich also gefragt, wie ich eine Funktion (in Bezug auf Stack-Wachstum und Leistung) in regelmäßigen Abständen rekursiv aufrufen kann. Nehmen wir zum Beispiel an, ich möchte den Dateiinhalt alle 200 ms lesen. Ich habe die folgenden zwei Methoden und habe mich gefragt, ob sie unterschiedlich sind?

Methode 1: Verwenden von setTimeout ohne process.nextTick

var fs = require('fs');
(function loop() {
  // Print to time to indicate something is happening
  console.log(new Date().toString());

  // Read a 51MB file
  fs.readFile('./testfile', function (err, data) {
    if (err) console.log(err);
  });

  // Call the same function again
  setTimeout(function () {
    loop();
  }, 200);
})();

Methode 2: Aufrufen von process.nextTick in setTimeout

var fs = require('fs');
(function loop() {
  // Print to time to indicate something is happening
  console.log(new Date().toString());

  // Read a 51MB file
  fs.readFile('./testfile', function (err, data) {
    if (err) console.log(err);
  });

  // Call the same function again
  setTimeout(function () {
    process.nextTick(function () {
      loop();
    });
  }, 200);
})();

Was ich wissen möchte, ist, dass das Hinzufügen von process.nextTick in setTimeout hilft oder nicht? Wird der Aufruf der Funktion in process.nextTick die Stapelverwendung verringern oder nicht?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage