Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 August 13

М

Максим in NodeUA - JavaScript and Node.js in Ukraine
event loop делает много всего. Там 6 этапов выполнения на самом деле :)
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
так почему вы говорите что с таймерами работает libuv
источник

М

Максим in NodeUA - JavaScript and Node.js in Ukraine
Потому что событийный цикл ноды реализован при помощи libuv
источник

М

Максим in NodeUA - JavaScript and Node.js in Ukraine
По крайней мере исходя их объяснений Ильи Кантора в его скринкасте по Node.js
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
А тогда как реализован в браузере событийный цикл ?
источник

М

Максим in NodeUA - JavaScript and Node.js in Ukraine
При помощи V8 Event Loop
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
источник

М

Максим in NodeUA - JavaScript and Node.js in Ukraine
Спасибо, Максим. Пойду изучать.
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
вообще да, libuv
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
Микротаски идут перед каждой макротаской
источник

М

Максим in NodeUA - JavaScript and Node.js in Ukraine
Согласен и пока все микротаски не разберем мы не пойдем к следующей макротаске. Верно я понимаю?
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
Тут должно быть хорошее объяснение короче
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
да, насколько я помню там две очереди
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
nextTick выполняется быстрее чем все остальное
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
на текущей итерации цикла
источник

DK

Dima Karageoz in NodeUA - JavaScript and Node.js in Ukraine
Ребята привет. Подскажите пожалуйста, может кто сталкивался. Я хочу попробоват реализоват следующий механизм "Unit of work" и принцип его таков, что для каждой сессии клиента, каждого запроса, создается отделный юнит, в книге приводится пример на Java. У джавы конечно такая сущност есть потому что она многопоточна, но какие есть способы реализовать тоже самое но в ноде. Можно например аттачит uow к req объекту, но тогда мне придется тянуть req до самого домена либо до data mapper-а, тогда нарушается принцип слоев.

class UnitOfWork {
   ...

   private static ThreadLocal current = new ThreadLocal();

   public static void newCurrent() {
       setCurrent(new UnitOfWork());
   }

   public static void setCurrent(UnitOfWork uow) {
       current.set(ouw);
   }

   public static UnitOfWork getCurrent() {
       return (UnitOfWork) current.get();
   }
}


new ThreadLocal() -  это текущая сессия
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
AsyncLocalStorage, и не придётся везде тянуть req
источник

DK

Dima Karageoz in NodeUA - JavaScript and Node.js in Ukraine
Должно сработать, спасибо)
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
что будет напечатано раньше?

new Promise(() => console.log('promise'));
process.nextTick(() => console.log('nextTick'));
источник

MA

Maksim Andreevich in NodeUA - JavaScript and Node.js in Ukraine
речь шла про таймеры
источник