Tôi rất bối rối về sự khác biệt giữa nextTick và setIm Instant. Tôi đã đọc tất cả các tài liệu về chúng trên internet nhưng tôi vẫn không hiểu chúng hoạt động như thế nào.
Ví dụ:
function log(n) { console.log(n); }
setIm Instant
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
Tại sao những kết quả này? Vui lòng giải thích bằng hình ảnh hoặc lời giải thích rất dễ làm theo. Ngay cả các nhà phát triển lõi của nút cũng không đồng ý với cách mọi người hiểu nextTick và setIm Instant.
Nguồn:
