Показали код из сторонней библиотеки.
Какие тонкие моменты могли заставить автора в таймауте поставить время ноль?
setTimeout(function () {
//todo something
}, 0);
Ответ
Этот способ может понадобиться, если потребуется асинхронное выполнение кода.
Например
console.log("1");
console.log("2");
console.log("3");
выведет, как и предполагается: 1 2 3
Однако, при добавлении setTimeout получится: 1 3 2
console.log("1");
setTimeout(function() {
console.log("2");
}, 0);
console.log("3"); // > 1 3 2
Это связано с тем, что выполнение функции откладывается до следующего витка event loop.
Комментариев нет:
Отправить комментарий