Dva: Поддерживает ли эффект async / await?

Созданный на 8 окт. 2018  ·  9Комментарии  ·  Источник: dvajs/dva

Как название

Самый полезный комментарий

Говоря, что Generator мощный, я просто хочу пожаловаться, что goto более мощный, вы можете прыгать куда хотите

Все 9 Комментарий

Нет, dva основан на redux-saga, redux-saga использует Generator, чтобы сделать эффект тестируемым, вы можете прочитать этот ответ, чтобы узнать подробности

https://github.com/redux-saga/redux-saga/issues/987#issuecomment -301039792

Я только что прочитал проблему, которую вы мне отправили. Чтобы было понятно, автор redux-saga слишком ленив, чтобы ее изменить, ха-ха

У меня также возник вопрос. Я проверил исходный код dva. 函数 в объекте эффектов предоставляется для внешнего исполнения и должен быть определен в соответствии с его спецификациями. Внешний должен быть определен как Generator , и мы используем функцию "Не заботиться о внешнем исполнении", она выполнит next() , поэтому код еще очень свежий.

Я только что прочитал проблему, которую вы мне отправили. Чтобы было понятно, автор redux-saga слишком ленив, чтобы ее изменить, ха-ха

Забавно, асинхронно, асинхронность управления ожиданием намного менее мощная, чем функция генератора

Нет, dva основан на redux-saga, redux-saga использует Generator, чтобы сделать эффект тестируемым, вы можете прочитать этот ответ, чтобы узнать подробности

redux-saga / redux-saga # 987 (комментарий)

В этом выпуске не говорится, почему генератор можно тестировать. @xiaosongxiaosong

С async нельзя протестировать ожидание? (Вопрос был давно. Это потому, что его никто не обсуждал)

@ 951565664

async, асинхронность управления ожиданием намного менее мощная, чем функция генератора

BengBu-YueZhang уже говорил о сути этой проблемы. Я не очень хорошо понимаю генераторы. Позвольте мне рассказать о моем поверхностном понимании:

  1. Функция генератора вызывается, возвращает объект посетителя вызывающей стороне, генератор объекта посетителя в дополнение к разрешению реализации восстановления, мы также указали выражение yield, возвращающее значение во время восстановления
  2. Функция async является синтаксическим сахаром функции генератора. Она имеет встроенный исполнитель. После вызова она автоматически выполнит и выведет окончательную структуру. Вызывающий не может контролировать паузу и возобновление функции async, а также не может вводить значения в асинхронную функцию.

В главе «Приступая к работе с генератором ECMAScript 6» есть два параграфа, которые более полезны для понимания этой проблемы.

Само выражение yield не возвращает значения или всегда возвращает undefined. Следующий метод может принимать параметр, который будет использоваться как возвращаемое значение предыдущего выражения yield.

Функция генератора из состояния паузы для возобновления работы, ее состояние контекста (контекст) не изменяется. С помощью параметров следующего метода можно продолжить ввод значений в тело функции после того, как функция генератора начнет выполняться. Другими словами, вы можете вводить разные значения снаружи внутрь на разных этапах функции генератора, чтобы настроить поведение функции.

Говоря, что Generator мощный, я просто хочу пожаловаться, что goto более мощный, вы можете прыгать куда хотите

Я только что прочитал проблему, которую вы мне отправили. Чтобы было понятно, автор redux-saga слишком ленив, чтобы ее изменить, ха-ха

Забавно, асинхронно, асинхронность управления ожиданием намного менее мощная, чем функция генератора

Кажется, что язык JS намного менее мощный, чем язык C

Была ли эта страница полезной?
0 / 5 - 0 рейтинги