Redux-Saga - очень мощная библиотека для обработки побочных эффектов в приложении. У него есть модель вилки, которая позволяет вам запускать некоторые задачи параллельно. Давайте посмотрим, что мы можем с этим сделать и как это реализовать. Чтобы поэкспериментировать самостоятельно, вы можете скачать готовую архитектуру проекта отсюда.
Код:
Все используемые функции являются функциями генератора. Сначала мы определяем функции задач: taskOne (), taskTwo (), taskThree (), которые используются в функции runTasks (), которая вызывается в parallelTasks ( ). Таким образом, после вызова parallelTasksSaga () redux-saga немедленно начнет выполнять все задачи параллельно. Разветвление задач сделает их неблокирующими, поэтому они будут работать без сбоев в фоновом режиме. Задачи начнутся одновременно, что вы увидите позже на подготовленном GIF-изображении. В задачах я использовал метод delay, который удерживает выполнение скрипта в течение заданного времени в миллисекундах. Итак, сначала следует выполнить taskThree (), затем taskTwo () и последнее, но не менее важное - taskOne ().
Тогда и только тогда должен запускаться последний console.log () в parallelTasksSaga (). Так что это очень мощный аспект модели форка - все задачи должны быть выполнены, чтобы завершить parallelTasksSaga.
Давайте посмотрим, как все это работает в браузере:
Ваше здоровье!