123456789101112131415161718192021 |
- <script>
- async function Exec(dispatch) {
- dispatch(actionPending()) //сигнализируем redux, что промис начался
- try {
- const payload = await promise //ожидаем промиса
- dispatch(actionFulfilled(payload)) //сигнализируем redux, что промис успешно выполнен
- return payload //в месте запуска store.dispatch с этим thunk можно так же получить результат промиса
- }
- catch (error) {
- dispatch(actionRejected(error)) //в случае ошибки - сигнализируем redux, что промис несложился
- }
- }
- function actionPromise(promise) {
- return Exec;
- }
- let myPromise = doSomethingSlow(1000);
- let execFunc = actionPromise(myPromise);
- store.dispatch(execFunc);
- </script>
|