是否有一种方法可以从then回调直接跳转到JavaScript Promise“ then-chain”内部的catch回调?
因此,举例来说,我正在从提取调用中检查数据:
fetch('api')
.then(response => {
if (response.json() === null) {
// error
// call catch
}
else {
return response.json();
}
})
.then(data => console.log(data.message))
.catch(error => console.log(error));
是否有最佳做法或变通办法?
答案 0 :(得分:2)
您可以在第一个.then
promise.then(response => {
if (response.json() === null) {
// error
// call catch
throw new Error('error !');
}
else {
return response.json();
}
})
.then(data => console.log(data.message))
.catch(error => console.log(error)); // error !
答案 1 :(得分:2)
您可以通过错误呼叫Promise.reject
。您将在catch()
方法内收到错误消息。
fetch('api')
.then(response => {
if (response.json() === null) {
return Promise.reject('Somethind bad happened');
}
else {
return response.json();
}
})
.then(data => console.log(data.message))
.catch(error => console.log(error));