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

Обзор

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

Вариант использования

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

Пример

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) Caitie McCaffrey
  2. Исходная статья Hector Garcia-Molina & Kenneth Salem
  3. Сага на Сагах от сайта MSDN