Await关键字在Redux操作中不起作用

Ste*_*law 4 javascript asynchronous async-await redux

我正在尝试将async/await语法合并到我的Redux操作中,但由于某种原因,它不起作用.我不能为我的生活看到以下问题:

const actions = {
    load: async (staff, date) => dispatch => {
        const data = {
            dateFrom: date,
            dateTo: date,
            person: staff,
            personType: 'staff'
        };

        const events = utils.getDataPromise('json/events/load', data);
        const classes = utils.getDataPromise('json/timetable/load', data);

        dispatch({
            type: actions.MYDAY_LOAD,
            staff,
            date: date || new Date(),
            events: await events,
            classes: await classes
        });
    },
}
Run Code Online (Sandbox Code Playgroud)

utils函数肯定会返回一个promise.

Ger*_*rdo 6

由于箭头函数语法,这是一个常见的错误.

您的load函数是async返回匿名箭头函数dispatch => {...}.

await只有当它在async函数内部并且你的await调用在匿名返回函数内部时才有效,这不是async它无法工作的原因.async之前移动dispatch,这应该工作.

const actions = {
    load: (staff, date) => async dispatch => {...}
    //                     ^^^^^ move it here
...
}
Run Code Online (Sandbox Code Playgroud)