Je suis très confus quant aux différences entre nextTick et setImmediate. J'ai lu toute la documentation à leur sujet sur Internet mais je ne comprends toujours pas comment ils fonctionnent.
Exemples :
function log(n) { console.log(n); }
setImmediate
setImmediate(function() {
setImmediate(function() {
log(1);
setImmediate(function() { log(2); });
setImmediate(function() { log(3); });
});
setImmediate(function() {
log(4);
setImmediate(function() { log(5); });
setImmediate(function() { log(6); });
});
});
//1 2 3 4 5 6
prochainTick
process.nextTick(function() {
process.nextTick(function() {
log(1);
process.nextTick(function() { log(2); });
process.nextTick(function() { log(3); });
});
process.nextTick(function() {
log(4);
process.nextTick(function() { log(5); });
process.nextTick(function() { log(6); });
});
});
//1 4 2 3 5 6
Pourquoi ces résultats ? Veuillez expliquer avec un visuel ou une explication très facile à suivre. Même les développeurs de node core ne sont pas d'accord sur la façon dont nextTick et setImmediate doivent être compris par les gens.
Sources :