NextTick ve setImmediate arasındaki farklar konusunda kafam çok karışık. Onlarla ilgili tüm belgeleri internette okudum ama nasıl çalıştıklarını hala anlamıyorum.
Örnekler:
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
Neden bu sonuçlar? Lütfen görsel veya takip etmesi çok kolay bir açıklama ile açıklayınız. Düğüm çekirdeği geliştiricileri bile nextTick ve setImmediate'in insanlar tarafından nasıl anlaşılması gerektiği konusunda hemfikir değil.
Kaynaklar:
