Кто-нибудь может объяснить вывод setImmediate и setTimeout в этом коде?
Что будет выходом setImmediate
а также setTimeout
в следующем коде:
console.log("11111");
setImmediate(function A(){
console.log("2222");
});
console.log("3333");
setTimeout(function B(){
console.log("4444");
},0);
console.log("5555");
Выход:
11111
3333
5555
4444
2222
когда я меняю время в setTimeout
время до 10, вывод:
11111
3333
5555
2222
4444
Кто-нибудь может объяснить мне это поведение?
1 ответ
Решение
setImmediate()
используется для прерывания длительных операций и запуска функции обратного вызова сразу после того, как браузер завершил другие операции, такие как события и обновления дисплея.
setTimeout()
вызывает функцию или вычисляет выражение через указанное количество миллисекунд. Это означает, что даже если браузер еще не завершен, он уже работает внутри функции.
Когда вы положите 10
значит, он будет работать только через 10 миллисекунд, что, скорее всего, ваш браузер уже завершил.