Описание тега redux-saga
Обзор
Промежуточное ПО 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}`);
}
};
Ресурсы
- Применение паттерна саги (видео на YouTube) Кейти Маккаффри
- Оригинальная статья Гектора Гарсиа-Молина и Кеннета Салема
- Сага о сагах с сайта MSDN