Вопросы с тегом «event-loop»

872
Почему setTimeout (fn, 0) иногда полезен?

Недавно я столкнулся с довольно неприятной ошибкой, когда код загружался <select>динамически через JavaScript. Этот динамически загруженный <select>имел предварительно выбранное значение. В IE6, мы уже имели код , чтобы установить выбранный <option>, потому что иногда...

143
Цикл событий Nodejs

Есть ли в архитектуре nodejs два внутренних цикла событий? libev / libuv Цикл событий javascript v8 В запросе ввода-вывода узел ставит в очередь запрос к libeio, который, в свою очередь, уведомляет о доступности данных через события, используя libev, и, наконец, эти события обрабатываются циклом...

140
Разница между микрозадачей и макрозадачей в контексте цикла событий

Я только что закончил читать Обещания / A + спецификации и наткнулся на термины microtask и macrotask: см http://promisesaplus.com/#notes Я никогда не слышал об этих терминах раньше, и теперь мне любопытно, какая разница? Я уже пытался найти некоторую информацию в Интернете, но все, что я нашел, -...

135
Понимание цикла событий

Я думаю об этом, и вот что я придумал: Посмотрим на этот код ниже: console.clear(); console.log("a"); setTimeout(function(){console.log("b");},1000); console.log("c"); setTimeout(function(){console.log("d");},0); Приходит запрос, и JS-движок начинает шаг за шагом выполнять приведенный выше код....

84
Что такое тик цикла событий Node.js?

Я все больше вникаю во внутреннее устройство архитектуры Node.js, и термин, который я часто вижу, - это «тик», как «следующий тик цикла событий» или функция nextTick () . Чего я не видел, так это четкого определения того, что такое «галочка». Основываясь на различных статьях ( например, этой ), я...

63
Асинхронная функция с + =

let x = 0; async function test() { x += await 5; console.log('x :', x); } test(); x += 1; console.log('x :', x); Выполнить фрагмент кодаСкрыть результатыРазвернуть фрагмент Значения xвошли в систему 1и 5. Мой вопрос: почему значение x 5второго журнала? Если testпосле выполняется x += 1(так как это...

11
Как поставить микрозадачу в очередь, если браузер не поддерживает встроенные обещания?

Лучше написать код, который не зависит от времени немедленных обратных вызовов (например, от микрозадач против макрозадач), но давайте пока отложим это. setTimeoutставит в очередь макрозадачу, которая, как минимум, ожидает запуска, пока не завершатся все микрозадачи (и микрозадачи, которые они...

10
Запуск параллельной 1k HTTP-запросов застрянет

Вопрос в том, что на самом деле происходит, когда вы запускаете 1k-2k исходящих HTTP-запросов? Я вижу, что он легко разрешил бы все соединения с 500 соединениями, но движение вверх оттуда, кажется, вызывает проблемы, так как соединения остаются открытыми, и приложение Node застревает там....