Ich bin sehr verwirrt über die Unterschiede zwischen nextTick und setImmediate. Ich habe die gesamte Dokumentation über sie im Internet gelesen, verstehe aber immer noch nicht, wie sie funktionieren.
Beispiele:
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
nextTick
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
Warum diese Ergebnisse? Bitte erklären Sie mit einer visuellen oder sehr leicht verständlichen Erklärung. Selbst die Entwickler des Knotenkerns sind sich nicht einig, wie nextTick und setImmediate von Menschen verstanden werden sollen.
Quellen:
1 4 2 3 5 6
für beide Ausführungen gleich ( ) (Node v5.6.0)