Пример в репозитории next.js показывает, как мы можем преобразовать корневой эпик в Promise, чтобы можно было await
выполнять асинхронное действие, например ajax
:
static async getInitialProps ({ store, isServer }) {
const resultAction = await rootEpic(
of(actions.fetchCharacter(isServer)),
store
).toPromise() // we need to convert Observable to Promise
store.dispatch(resultAction)
return { isServer }
}
Мне интересно, как можно await
выполнять более одного действия. Мне удалось это сделать так:
const actions = await Promise.all([
rootEpic(of(fetchCharacterOne()), store).toPromise(),
rootEpic(of(fetchCharacterTwo()), store).toPromise(),
rootEpic(of(fetchCharacterThree()), store).toPromise(),
]);
actions.forEach(store.dispatch);
... но мне интересно, есть ли способ попроще, чем каждый раз вызывать rootEpic
- я имею в виду вызов его один раз с тремя действиями для ожидания.