Ответы пользователя по тегу Event loop
  • Почему промисы являются microtasks, а таймеры - просто tasks?

    devellopah
    @devellopah
    не долго гугля наткнулся на это (внутри диаграмма, которая всё объясняет)

    По поводу того почему промисы оформляются как микротаски есть такое пояснение:
    Treating promises as tasks leads to performance problems, as callbacks may be unnecessarily delayed by task-related things such as rendering. It also causes non-determinism due to interaction with other task sources, and can break interactions with other APIs, but more on that later.


    Если коротко, в event loop по очереди выполняются таски, однако сам таск может включать некую очередь из микрозадач, которая, в свою очередь, выполнится в контексте текущего таска. То есть, если взять таски x и y, где y следует за x, то получится, что console.log('promise') выполнится в контексте таска x(в самом его конце, аккурат перед началом выполнения следующего таска), а console.log('timer') - в котексте таска y.
    Ответ написан
    3 комментария
  • Асинхронный цикл JavaScript & Генераторы?

    devellopah
    @devellopah
    javascript - это single-thread language. ты не вызовешь параллельно this.task(task) для всех элементов массива. ассинхронность не значит, что код выполняется параллельно, он просто выполняется в non-blocking стиле. даже promise.all() не выполняется параллельно. чтобы выполнить код параллельно - нужно выполнить его в отдельном потоке(webworkers).
    Ответ написан
    8 комментариев