想请问下老师关于promise.then()的问题
来源:7-7 前端架构之抽象2:网络请求层封装( redux-thunk)(2)

hpbrave
2020-08-15
突然有点糊涂了,在request.js里,get函数是这样的:
function get(url){
return fetch(url, {
method: "GET",
headers: headers
}).then(response => {
handleResponse(url, response)
}).catch(err => {
console.error(`Request failed. Url = ${url}. Message=${err}`)
return Promose.reject({error: {message: "Request failed."}})
});
}
fetch()之后先用then处理成功的情况,再用catch处理有错误的情况。
但是在home.js里, loadLikes是这样的:
export const actions = {
loadLikes: () => {
return (dispatch, getState) => {
dispatch(fetchLikesRequest());
return get(url.getProductList(0, 10)).then(
data => {
dispatch(fetchLikesSuccess(data))
},
error => {
dispatch(fetchLikesFailure(error))
}
)
}
}
}
在then()中传入两个函数,分别处理成功和失败的情况。请问老师,这两种写法是等价的吗?能互换吗?非常感谢!
写回答
1回答
-
hpbrave
提问者
2020-08-15
刚才查了查,得到了一种解释,不知道对不对:
then(f1, f2),这里f1处理前面函数成功的情况,f2处理前面函数失败的情况。
then(f1).catch(f2),这里f1仍然处理前面函数成功的情况,而f2处理f1失败的情况
022020-08-22
相似问题