example.html 935 B

123456789101112131415161718192021
  1. <script>
  2. async function Exec(dispatch) {
  3. dispatch(actionPending()) //сигнализируем redux, что промис начался
  4. try {
  5. const payload = await promise //ожидаем промиса
  6. dispatch(actionFulfilled(payload)) //сигнализируем redux, что промис успешно выполнен
  7. return payload //в месте запуска store.dispatch с этим thunk можно так же получить результат промиса
  8. }
  9. catch (error) {
  10. dispatch(actionRejected(error)) //в случае ошибки - сигнализируем redux, что промис несложился
  11. }
  12. }
  13. function actionPromise(promise) {
  14. return Exec;
  15. }
  16. let myPromise = doSomethingSlow(1000);
  17. let execFunc = actionPromise(myPromise);
  18. store.dispatch(execFunc);
  19. </script>