<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>