来自redux教程:
const onSavePostClicked = async () => {
if (canSave) {
try {
setAddRequestStatus('pending')
await dispatch(addNewPost({ title, content, user: userId }))
.unwrap()
} catch (err) {
console.error('Failed to save the post: ', err)
} finally {
setAddRequestStatus('idle')
}
}
}
dispatch(addNewPost({ title, content, user: userId }))
将返回这样的promise:
state: "fulfilled"
result: fulfilled action object
dispatch(addNewPost({ title, content, user: userId })).unwrap()
也会返回一个promise。
那么不带unwrap
的promise和带unwrap
的promise有什么区别呢?
state: "fulfilled"
result: ?
1条答案
按热度按时间ct2axkht1#
dispatch(addNewPost({ title, content, user: userId }))
将解析为该形实转换程序调度的最新操作。对于
.unwrap()
,它将解析为fulfilled
操作的值,或者抛出rejected
操作。这里的想法是,你应该能够
dispatch
一个asyncThunk,而不必每次都捕获它,但只有当你真的想基于它编写更多逻辑时。