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