Синхронный тренд JS: опрос

    Доброго дня!

    Начиная с 8 LTS async/await полностью поддерживается на платформе Node; начиная с Chrome 62 (октябрь 2017) в консоли можно использовать await вне тела асинхронной функции, т.е. top-level. На сегодня на этапе Stage 2 находится соответствующий proposal в tc39. В то же время существует огромное количество легаси-кода с коллбэками даже без промисов, со смесью того и другого, и всякие другие комбинации. Где-то даже остались следы генераторов. Т.е. в мире JavaScript сосуществуют как минимум 4 разные модели реализации (а)синхронности.

    А что предпочитаете вы? Не откажите в любезности уделить минутку ответу. Спасибо!

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Вы используете async/await:
    Поделиться публикацией

    Похожие публикации

    Комментарии 16
      +3
      Наряду с асинхроными итераторами:

      for await (const line of readLines(filePath)) {
        console.log(line)
      }
      
        0
        Забыл их включить в список опций, спасибо!
        +2

        Почему о генераторах говорится как о чём-то древнем и ненужном? Использую и async/await и генераторы вместе, для разных задач

          +1
          имел в виду генераторы не для создания итераторов, а как «предыдущий» способ реализовать ожидание, не хотел обидеть чувства приверженцев генераторов
            +2
            То же самое про колбеки.
          0

          Использую js observable (хорошо, хорошо, пока что использую rxjs), async/await/promise совсем иногда.

            0
            rxjs с Angular или отдельно?
              0

              С реактом и редуксом. Redux-observable


              Но это в производственной практике, дома по-обстоятельствам, но эти обстоятельства, почему-то, часто по своей природе включают в себя стримы. Ну или я начал все видеть как стримы, как завещал Роб Вормалд.


              Но должен признаться, что пока некоторые конструкции получаются короткими и изящными, другие конструкции получаются огромными и неповоротливыми (считай, нечитаемыми). Но в тех же async/await/promise раздражает невозможность их отмены (cancelation), что приводит либо к обилию Promise.race, либо к более тщательной проверке что не осталось подвисшего замыкания и никакое модальное окно не выскачит вдруг неожиданно на совершенно другой странице.

            0
            За что голосовать если в основном используется rxjs?
              0
              мне кажется, скорее за промисы – по стилю и духу они по-моему ближе всего
              0
              async await позволяет писать очень милый псевдо-синхронный код. Но в случае сложных конструкций без bluebird никуда — иначе никак не сделаешь нормально map+concurrency, delay, timeout, reduce и так далее. К счастью, они очень мило интегрируются, чем мы и пользуемся.
                0
                это действительно мило
                +1
                Что-то я не совсем понимаю как async/await без промисов использовать если он сахар для промисов. Довольно стандартный код:
                await Promise.all(tasks);

                Конструкция for await не в счёт. Это другой сахар.
                  0
                  для краткости «без промисов» означало здесь «без промисов в явной форме с использованием then/catch вместо присваивания»… const a = await(p) противопоставляется p.then(a => doSomething(a)) как императивный синхронный стиль функциональному асинхронному; разумеется возможны переходные и смешанные формы; здесь речь о граничных случаях
                    +1
                    Теперь понятнее, проголосовал.
                    Вообще, мой ответ — без коллбэков/промисов/генераторов. Но это не совсем верно, потому как время от времени приходится писать редаксовые саги, а там всё на генераторах. Но если решение стоит за мной, а не диктуется библиотекой — то async/await. Код куда чище получается.
                      0
                      Спасибо!

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое