在我的应用程序中,安装根组件后,我会获取一本书籍清单。之后,它必须自动选择列表的第一本书并获取其章节列表。然后,自动选择第一章并显示其详细信息。初始加载后,用户可以选择当前书籍中的另一本书或章节。
假设我获取图书清单时出现网络问题或API响应不良。中止其余操作并仅显示通知消息的最佳方法是什么?我一直在使用这样的东西:
import requestChaptersList from './chapterSlice'
// ...
const requestBooksList = createAsyncThunk(`${sliceName}/requestList`, async () => {
return await api.books()
}
export const requestBooksListAndChapter = () => async (dispatch) => {
await dispatch(requestBooksList())
.then(unwrapResult)
.then((res) => {
dispatch(selectFirstBook())
dispatch(requestChaptersList())
})
.catch((error) => {
dispatch(notifyError(error))
})
}
// ...
问题是:
unwrapResult
创建原始错误的序列化版本。但是我的notifyError
(理想情况下)应该得到一个Error对象或一个子类。
在没有unwrapResult
的情况下,运行requestBooksList
的拒绝减少程序,但是.then
ppart正常继续。
当请求数量增加时,它似乎无法很好地扩展。例如,如果我想要一本书>章节>页面顺序。