За пол часа, понять как строить архитектуру кода. Очень информационный доклад без воды!
@ПетърТодоров-о7ф2 жыл бұрын
Лучшее объяснение по этой теме. Посмотрел видосов 10 как на русском, так и на английском, читал документацию, лазил по разным сайтам, но именно благодаря вашему объяснению понял как это работает.
@denisdk79125 жыл бұрын
Спасибо за доклад, лучшее что видел про event loop ноды
@EugenePetrov-l6l Жыл бұрын
Лучшая подача про event loop
@alenalinkevich44896 жыл бұрын
Спасибо большое, очень классный и нужный доклад. Пересмотрела и перечитала кучу всего, этот самый понятный.
@AkkayHT2285 жыл бұрын
Alena Linkevich как успехи, уже выучили?
@tshch85715 жыл бұрын
Странно, что не упомянули автора в тексте. Сергей Аванесян, запомните этого парня!
@epammoscowitsubbotnik53795 жыл бұрын
Мы исправились =)
@atk652235 жыл бұрын
Спасибо, крутой доклад. Единственное что, лучше бы слайд постоянно показывали на полный экран, а аудиторию где-то в углу. На аудиторию не очень интересно смотреть, а слайд не видно.
@AlexP-qm7ew3 жыл бұрын
Как решение - скачать презентацию по ссылке и открыть в окне рядом, если есть такая возможность
@piano94463 жыл бұрын
Thank you Sergey jan, this is a really very helpful, detailed presentation.
@andriiveretko33993 жыл бұрын
В новых версиях ноды setIntermidiate() имеет выше приоритет и колбэк будет выполнен уже в нынешнем цикле
@yennms5547 Жыл бұрын
Отличное видео, спасибо!
@surho0073 жыл бұрын
Супер офигенное обьяснение
@ykartoev5 жыл бұрын
Крутой доклад, большое спасибо!
@MasharipovSaidbek2 жыл бұрын
Thanks, Great work!
@dima199725252 жыл бұрын
топ доклад, лектор красавчик, оч понравилось
@АлександрЧепрасов-с4й2 жыл бұрын
Очень круто! Спасибо!
@glebbondarenko67 Жыл бұрын
Как я понял DataLoader основан на том что nextTick выполняется перед Promise
@alexeylozenko60932 жыл бұрын
Коротко и просто очереди и приоритет их выполнения.
@Dragolietel2 жыл бұрын
С файлом немного не точный пример - он туда не заходит потому что файл может быть еще не прочитан и сообщение вообще не в мессейдж кью
@aleksandrmatyka31182 жыл бұрын
Отличный доклад
@alexeycherneny143111 ай бұрын
Я попробовал воспроизвести этот пример но получил результат иной. Поправьте пожалуйста если я не прав: //------------------------------------------------------------------------------ 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
@evgenylevchenya87343 жыл бұрын
Попробуйте обернуть всё в асинхронную функцию и добавьте await к промисам или докинуть fs/promises
@glebandreev70952 жыл бұрын
стоило начинать с паттерна реактор и демультиплексирования событий, только потом говорить про event loop и уточнить, что по факту нет такого количества очередей под каждую фазу, есть только Event Queue, которую libuv разбирает в соответсвии в фазами
@torodinson52605 жыл бұрын
почему readfile идет в poll ? это же i/o колбэк
@ДанилаШиянов Жыл бұрын
почему при использовании module вместо require другой порядок
@DBFEnd9 ай бұрын
Классное видео, но к сожалению допущена ужасная и очень важная для понимания ошибка в описании: микротаски выполняются не после каждой макрофазы, а после каждой задачи из макрофазы. Аналогия такая же как в браузерном ивентлупе, только тут 6 макроочередей вместо 1
@NikolayKharitonov5 ай бұрын
Это зависит от версии ноды. Вплоть до v10 включительно обе очереди микротасок обрабатывались между фазами, и только начиная с v11 микротаски обрабатываются также и между обработкой коллбеков.
@igorlyatskiy38643 ай бұрын
Тоже долго думал над этим. Спасибо за комментарий!
@dawitadmassu29472 жыл бұрын
no English version please ?
@fruitypie5 жыл бұрын
У nextTick() приоритет над таймерами и они выполняются быстрее, но, авторы многих популярных книг по ноде вообще не рекомендуют использовать данный метод Автору не помешало бы приводить побольше реальных примеров, а так, спасибо за доклад
@jaisharma80562 жыл бұрын
Можешь сделать то же видео в английском переводе?
@Fayzov5 жыл бұрын
Ахуенно! Спасибо за доклад!
@daniildmitriev74262 жыл бұрын
Приложите листинг кода плиз
@АнуарбекЗакирьянов3 жыл бұрын
Super!
@TyrboCreed4 жыл бұрын
14:53 Почему попадает в check а не в timers?
@bohdanivanychko77024 жыл бұрын
в timers попадают только setInterval и setTimeout
@torodinson52604 жыл бұрын
где в примере с crypto там 4 асинхр ф-ии ?
@РусланЮсуфов-ф3ш3 жыл бұрын
Не совсем. Это параллельные функции. Тяжёлые операции вроде crypto попадают в Thread Pool, который находится как бы "за" основным потоком и перекладывается на другие ядра компьютера. То есть в примере с крипто у нас каждую функцию выполняет отдельное ядро компьютера, за счёт чего они выполняются практически одновременно. Таким образом сильно сокращается время, за которое выполняется код
@torodinson52604 жыл бұрын
какая разница между двумя фазами i/o ?
@РусланЮсуфов-ф3ш3 жыл бұрын
I - input (ввод), O - output (вывод). Это операции, связанные с чтением/записью файлов. Возможно, ещё с какими-то, но на ум не приходят
@3211235802 жыл бұрын
Это Мартиросян?
@Гооол-й4ч Жыл бұрын
8:51
@suazdee3 жыл бұрын
В IT идут те, кто говорить не умеет? А вообще спасибо, норм материал
@user-jt7wb3zc1m3 жыл бұрын
Вау, поздравляю! Самое плохое объяснение из всех которые когда-либо встречал!