Запитання з тегом «event-loop»

17
Чому іноді корисно setTimeout (fn, 0)?
Нещодавно я зіткнувся з досить неприємною помилкою, де код <select>динамічно завантажувався через JavaScript. Цей динамічно завантажений <select>мав попередньо вибране значення. В IE6, ми вже мали код , щоб встановити вибраний <option>, тому що іноді <select>«s selectedIndexзначення буде синхронізований з обраним <option>» s indexатрибута, як показано нижче: field.selectedIndex = element.index; Однак …

7
Петля подій Nodejs
Чи є внутрішньо дві петлі подій в архітектурі nodejs? libev / libuv v8 цикл подій javascript На запит вводу / виводу читання вузлів виконує запит на libeio, який, в свою чергу, повідомляє про доступність даних через події за допомогою libev, і, нарешті, ці події обробляються циклом подій v8 за допомогою …

3
Різниця між мікрозадачею та макроскладом у контексті циклу події
Я щойно закінчив читати специфікацію Promises / A + і натрапив на умови microtask та macrotask: див. Http://promisesaplus.com/#notes Я ніколи раніше не чув про ці терміни, і зараз мені цікаво, яка може бути різниця? Я вже намагався знайти деяку інформацію в Інтернеті, але все, що я знайшов, - це публікація …

3
Розуміння циклу подій
Я думаю про це, і ось що я придумав: Давайте подивимось цей код нижче: console.clear(); console.log("a"); setTimeout(function(){console.log("b");},1000); console.log("c"); setTimeout(function(){console.log("d");},0); Надходить запит, і JS двигун починає виконувати код вище, крок за кроком. Перші два дзвінки - це синхронізовані дзвінки. Але коли мова йде про setTimeoutметод, він стає асинхронним виконанням. Але JS …

3
Що саме являє собою галочку циклу подій Node.js?
Я детальніше вивчаю внутрішню частину архітектури Node.js, і термін, який, як я бачу, часто зустрічається, це "галочка", як у "наступному галочці циклу подій" або функції nextTick () . Те, чого я не бачив, - це тверде визначення того, що саме таке «кліщ». Грунтуючись на різних статтях ( таких як ця …

5
Функція асинхронізації з + =
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(оскільки вона є функцією …

2
Як встановити чергу на мікрозадачу, якщо браузер не підтримує нативних Обіцянь?
Краще написати код, який не покладається на терміни негайних зворотних викликів (наприклад, мікрозадачі проти макрозадач), але давайте відкладемо це на час. setTimeoutчерги макрозадачі, яка, як мінімум, чекає запуску, поки всі мікротеки (і мікрозадачі, які вони нерестуються) закінчуються. Ось приклад: console.log('Macrotask queued'); setTimeout(function() { console.log('Macrotask running'); }); Promise.resolve() .then(function() { console.log('Microtask …

1
Запуск паралелі 1 к HTTP запитів застрягне
Питання в тому, що насправді відбувається під час запуску 1k-2k вихідних HTTP-запитів? Я бачу, що це дозволить легко вирішити всі з'єднання за допомогою 500 підключень, але, рухаючись вгору звідти, схоже, це спричинить проблеми, оскільки з'єднання залишаються відкритими і додаток Node буде застряг там. Тестовано на локальному сервері + приклад Google …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.