有没有更好的方法可以在捕获拒绝的同时链接异步thunk



由于使用createAsyncThunk创建的thunk将始终返回已解析的promise。有没有比每次都必须添加unwrapResult以捕获拒绝更好的方法来处理链式thunk?

const fetchUsers = createAsyncThunk('users/fetch', myService.fetchUsers);
const updateUser = createAsyncThunk('users/update', myService.updateUser);
export const updateAndFetch = values => async dispatch => {
const result = await dispatch(updateUser(values));
const unwrapped = unwrapResult(result); // required to see if first update was rejected
return dispatch(fetchUsers());
}

不是。

你也可以像一样写

export const updateAndFetch = values => async dispatch => {
const result = await dispatch(updateUser(values)).then(unwrapResult);
return dispatch(fetchUsers());
}

export const updateAndFetch = values => async dispatch => {
const result = await dispatch(updateUser(values));
if (updateUser.fulfilled.match(result)) {
return dispatch(fetchUsers());
}
}

但在某个时刻,你将不得不进行检查。

相关内容

  • 没有找到相关文章

最新更新