Event loop в Node.js

  Рет қаралды 45,766

EPAM Moscow ITsubbotnik

EPAM Moscow ITsubbotnik

Күн бұрын

Пікірлер: 49
@ЕвгенийИванов-и6е6м
@ЕвгенийИванов-и6е6м 5 жыл бұрын
За пол часа, понять как строить архитектуру кода. Очень информационный доклад без воды!
@ПетърТодоров-о7ф
@ПетърТодоров-о7ф 2 жыл бұрын
Лучшее объяснение по этой теме. Посмотрел видосов 10 как на русском, так и на английском, читал документацию, лазил по разным сайтам, но именно благодаря вашему объяснению понял как это работает.
@denisdk7912
@denisdk7912 5 жыл бұрын
Спасибо за доклад, лучшее что видел про event loop ноды
@EugenePetrov-l6l
@EugenePetrov-l6l Жыл бұрын
Лучшая подача про event loop
@alenalinkevich4489
@alenalinkevich4489 6 жыл бұрын
Спасибо большое, очень классный и нужный доклад. Пересмотрела и перечитала кучу всего, этот самый понятный.
@AkkayHT228
@AkkayHT228 5 жыл бұрын
Alena Linkevich как успехи, уже выучили?
@tshch8571
@tshch8571 5 жыл бұрын
Странно, что не упомянули автора в тексте. Сергей Аванесян, запомните этого парня!
@epammoscowitsubbotnik5379
@epammoscowitsubbotnik5379 5 жыл бұрын
Мы исправились =)
@atk65223
@atk65223 5 жыл бұрын
Спасибо, крутой доклад. Единственное что, лучше бы слайд постоянно показывали на полный экран, а аудиторию где-то в углу. На аудиторию не очень интересно смотреть, а слайд не видно.
@AlexP-qm7ew
@AlexP-qm7ew 3 жыл бұрын
Как решение - скачать презентацию по ссылке и открыть в окне рядом, если есть такая возможность
@piano9446
@piano9446 3 жыл бұрын
Thank you Sergey jan, this is a really very helpful, detailed presentation.
@andriiveretko3399
@andriiveretko3399 3 жыл бұрын
В новых версиях ноды setIntermidiate() имеет выше приоритет и колбэк будет выполнен уже в нынешнем цикле
@yennms5547
@yennms5547 Жыл бұрын
Отличное видео, спасибо!
@surho007
@surho007 3 жыл бұрын
Супер офигенное обьяснение
@ykartoev
@ykartoev 5 жыл бұрын
Крутой доклад, большое спасибо!
@MasharipovSaidbek
@MasharipovSaidbek 2 жыл бұрын
Thanks, Great work!
@dima19972525
@dima19972525 2 жыл бұрын
топ доклад, лектор красавчик, оч понравилось
@АлександрЧепрасов-с4й
@АлександрЧепрасов-с4й 2 жыл бұрын
Очень круто! Спасибо!
@glebbondarenko67
@glebbondarenko67 Жыл бұрын
Как я понял DataLoader основан на том что nextTick выполняется перед Promise
@alexeylozenko6093
@alexeylozenko6093 2 жыл бұрын
Коротко и просто очереди и приоритет их выполнения.
@Dragolietel
@Dragolietel 2 жыл бұрын
С файлом немного не точный пример - он туда не заходит потому что файл может быть еще не прочитан и сообщение вообще не в мессейдж кью
@aleksandrmatyka3118
@aleksandrmatyka3118 2 жыл бұрын
Отличный доклад
@alexeycherneny1431
@alexeycherneny1431 11 ай бұрын
Я попробовал воспроизвести этот пример но получил результат иной. Поправьте пожалуйста если я не прав: //------------------------------------------------------------------------------ const fs = require('fs') console.log('START') setTimeout(() => { console.log('setTimeout 1') }, 0) setImmediate(() => { console.log('setImmediate') }) fs.readFile(__filename, ()=> { setTimeout(() => { console.log('readFile setTimeout') }, 0) setImmediate(() => { console.log('readFile setImmediate') }) process.nextTick(() => { console.log('readFile nextTick') }) }) Promise.resolve().then(() => { console.log('Promise') process.nextTick(() => { console.log('Promise Next Tick') }) }) process.nextTick(() => { console.log('Next Tick') }) setTimeout(() => { console.log('setTimeout 2') }) console.log('END') //------------------------------------------------------------------------------ Вывод START END Next Tick Promise Promise Next Tick setImmediate
@evgenylevchenya8734
@evgenylevchenya8734 3 жыл бұрын
Попробуйте обернуть всё в асинхронную функцию и добавьте await к промисам или докинуть fs/promises
@glebandreev7095
@glebandreev7095 2 жыл бұрын
стоило начинать с паттерна реактор и демультиплексирования событий, только потом говорить про event loop и уточнить, что по факту нет такого количества очередей под каждую фазу, есть только Event Queue, которую libuv разбирает в соответсвии в фазами
@torodinson5260
@torodinson5260 5 жыл бұрын
почему readfile идет в poll ? это же i/o колбэк
@ДанилаШиянов
@ДанилаШиянов Жыл бұрын
почему при использовании module вместо require другой порядок
@DBFEnd
@DBFEnd 9 ай бұрын
Классное видео, но к сожалению допущена ужасная и очень важная для понимания ошибка в описании: микротаски выполняются не после каждой макрофазы, а после каждой задачи из макрофазы. Аналогия такая же как в браузерном ивентлупе, только тут 6 макроочередей вместо 1
@NikolayKharitonov
@NikolayKharitonov 5 ай бұрын
Это зависит от версии ноды. Вплоть до v10 включительно обе очереди микротасок обрабатывались между фазами, и только начиная с v11 микротаски обрабатываются также и между обработкой коллбеков.
@igorlyatskiy3864
@igorlyatskiy3864 3 ай бұрын
Тоже долго думал над этим. Спасибо за комментарий!
@dawitadmassu2947
@dawitadmassu2947 2 жыл бұрын
no English version please ?
@fruitypie
@fruitypie 5 жыл бұрын
У nextTick() приоритет над таймерами и они выполняются быстрее, но, авторы многих популярных книг по ноде вообще не рекомендуют использовать данный метод Автору не помешало бы приводить побольше реальных примеров, а так, спасибо за доклад
@jaisharma8056
@jaisharma8056 2 жыл бұрын
Можешь сделать то же видео в английском переводе?
@Fayzov
@Fayzov 5 жыл бұрын
Ахуенно! Спасибо за доклад!
@daniildmitriev7426
@daniildmitriev7426 2 жыл бұрын
Приложите листинг кода плиз
@АнуарбекЗакирьянов
@АнуарбекЗакирьянов 3 жыл бұрын
Super!
@TyrboCreed
@TyrboCreed 4 жыл бұрын
14:53 Почему попадает в check а не в timers?
@bohdanivanychko7702
@bohdanivanychko7702 4 жыл бұрын
в timers попадают только setInterval и setTimeout
@torodinson5260
@torodinson5260 4 жыл бұрын
где в примере с crypto там 4 асинхр ф-ии ?
@РусланЮсуфов-ф3ш
@РусланЮсуфов-ф3ш 3 жыл бұрын
Не совсем. Это параллельные функции. Тяжёлые операции вроде crypto попадают в Thread Pool, который находится как бы "за" основным потоком и перекладывается на другие ядра компьютера. То есть в примере с крипто у нас каждую функцию выполняет отдельное ядро компьютера, за счёт чего они выполняются практически одновременно. Таким образом сильно сокращается время, за которое выполняется код
@torodinson5260
@torodinson5260 4 жыл бұрын
какая разница между двумя фазами i/o ?
@РусланЮсуфов-ф3ш
@РусланЮсуфов-ф3ш 3 жыл бұрын
I - input (ввод), O - output (вывод). Это операции, связанные с чтением/записью файлов. Возможно, ещё с какими-то, но на ум не приходят
@321123580
@321123580 2 жыл бұрын
Это Мартиросян?
@Гооол-й4ч
@Гооол-й4ч Жыл бұрын
8:51
@suazdee
@suazdee 3 жыл бұрын
В IT идут те, кто говорить не умеет? А вообще спасибо, норм материал
@user-jt7wb3zc1m
@user-jt7wb3zc1m 3 жыл бұрын
Вау, поздравляю! Самое плохое объяснение из всех которые когда-либо встречал!
@idiotidiot2805
@idiotidiot2805 2 жыл бұрын
почему? Всё предельно понятно же
Пора убить lifecycle!
38:36
EPAM Moscow ITsubbotnik
Рет қаралды 553
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
Почему Node.js такая быстрая, если тред всего один?
14:38
devschacht “Девшахта”
Рет қаралды 102 М.
JavaScript Visualized - Event Loop, Web APIs, (Micro)task Queue
12:35
Все, что нужно знать про Node.js
58:55
Trampoline Meetup
Рет қаралды 32 М.
Приключения Node.js в продакшене
39:12
Yandex for Developers
Рет қаралды 11 М.
Разрушаем мифы про Node.js
1:36:18
Math.random: javascript community
Рет қаралды 16 М.
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН