将promise返回去,并将其处理成纯对象。例如,在redux-thunk中,可以使用async/await来处理异步操作,然后返回纯对象,如下所示:
export const getUser = (id) => {
return async dispatch => {
try {
const user = await fetchUser(id);
dispatch({ type: 'USER_FETCH_SUCCESS', payload: user });
} catch (error) {
dispatch({ type: 'USER_FETCH_FAILURE', payload: error });
}
};
};
这里getUser函数返回了一个异步函数,它使用await关键字来等待一个Promise结果并将结果处理为一个纯对象,然后再将其传递给dispatch方法。这就避免了“操作必须是纯对象”的错误。