使用React& Redux& Redux-Thunk,尝试制作这个伪代码:
// pseudocode dispatch(makeServiceRequest) if failed dispatch(makeIdentityRequest) if successful dispatch(makeServiceRequest) end end
如果代码放在launchd
的{{1}}块内,则要避免无限循环。
我在调度操作中使用.catch
逻辑。 makeServiceRequest
does not reject on HTTP status errors。
如何使这个伪代码发生?处理这种情况的正确模式是什么?
答案 0 :(得分:0)
只有then
检查HTTP状态,如果它不是成功状态就会抛出错误,就像链接中所说的那样:
function checkStatus(response) {
if (response.status >= 200 && response.status < 300) {
return response
} else {
var error = new Error(response.statusText)
error.response = response
throw error
}
}
fetch(url).then(checkStatus).then(...).catch(...);
除此之外,我不清楚你的Redux特定问题是什么。
编辑:根据您的评论,我想您正在询问如何管理Redux操作,这些操作在调度时可以异步调度其他操作。模仿的一种方式是作为“传奇”。有一个名为redux-saga的Redux库可以让你对这类事物进行建模。