Описание тега redux-saga

Redux-saga - это библиотека промежуточного программного обеспечения redux, предназначенная для обработки побочных эффектов в приложениях redux. Он предоставляет разработчикам возможность синхронно управлять асинхронным кодом.

Обзор

Промежуточное ПО redux-saga находится поверх приложения redux, а точнее, между действиями и редукторами. Это смягчает переходы между состояниями приложения и побочные эффекты. В результате потоками легче управлять, они более эффективны в исполнении, легче тестируются и лучше справляются с ошибками.

Пример использования

Извлечение данных из API может быть распространенным вариантом использования redux-saga для обработки побочных эффектов, когда приложение работает в фоновом режиме. Эта задача является асинхронной, поскольку мы не можем быть на 100% уверены, что обещанные данные будут доступны для нашего использования и когда. Это приводит к неудовлетворительному взаимодействию с пользователем, поскольку мы не можем гарантировать время, необходимое для отображения необходимых данных. Используя сагу, мы можем остановить выполнение функции и дождаться готовности данных, а затем перейти к выполнению следующей строки кода. Как сага о redux. Обычно мы хотим отображать индикатор загрузки, чтобы сигнализировать о статусе вызова нашим пользователям, что в конечном итоге приведет к улучшению взаимодействия с пользователем.

пример

function fetchJson(url) {
    return fetch(url)
    .then(request => request.text())
    .then(text => {
        return JSON.parse(text);
    })
    .catch(error => {
        console.log(`ERROR: ${error.stack}`);
    });
}

можно записать как (с помощью таких библиотек, как co.js) -

function * fetchJson(url) {
    try {
        let request = yield fetch(url);
        let text = yield request.text();
        return JSON.parse(text);
    }
    catch (error) {
        console.log(`ERROR: ${error.stack}`);
    }
};

Ресурсы

  1. Применение паттерна саги (видео на YouTube) Кейти Маккаффри
  2. Оригинальная статья Гектора Гарсиа-Молина и Кеннета Салема
  3. Сага о сагах с сайта MSDN