Alv*_*ney 5 javascript redux redux-toolkit
来自 redux 教程:
Run Code Online (Sandbox Code Playgroud)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 }))
会返回这样的承诺:
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')
}
}
}
Run Code Online (Sandbox Code Playgroud)
并且dispatch(addNewPost({ title, content, user: userId })).unwrap()
还会返回一个承诺。
那么,promise without 和 with 有什么区别呢unwrap
?
state: "fulfilled"
result: fulfilled action object
Run Code Online (Sandbox Code Playgroud)
dispatch(addNewPost({ title, content, user: userId }))
将解析该 thunk 已发送的最新操作。
使用.unwrap()
,它将解析为fulfilled
操作的值,或抛出一个rejected
操作。
这里的想法是,您应该能够使用dispatch
asyncThunk 而不必每次都捕获它,但前提是您确实想基于它编写更多逻辑。
归档时间: |
|
查看次数: |
13314 次 |
最近记录: |