Chamando a função recursivamente em intervalos regulares
Então, eu estava me perguntando qual seria a melhor maneira (em termos de crescimento e desempenho da pilha) de chamar recursivamente uma função em intervalos regulares? Por exemplo, digamos que eu queira ler o conteúdo do arquivo a cada 200 ms. Eu tenho os dois métodos a seguir e queria saber se eles são diferentes?
Método 1: Usando ols simples setTimeout sem 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);
})();
Método 2: Chamando process.nextTick dentro de 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);
})();
O que eu quero saber é que adicionando process.nextTick dentro de setTimeout ajuda ou não? Chamar a função dentro de process.nextTick irá aliviar o uso da pilha ou não?