Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Моментальное выполнение в timeout

#javascript


Показали код из сторонней библиотеки.
Какие тонкие моменты могли заставить автора в таймауте поставить время ноль?

setTimeout(function () {
    //todo something
}, 0);

    


Ответы

Ответ 1



Этот способ может понадобиться, если потребуется асинхронное выполнение кода. Например 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.

Комментариев нет:

Отправить комментарий