我怎样才能实现 saveThings() 的调用者获得精确的错误描述(A 或 B)。目前,我对 A 类型的拒绝被 catch() 子句捕获,因此调用者总是以消息 B 结束......
saveThings() {
return api.post(endpoint, data)
.then( response => {
if ( !response )
reject({message: 'error of type A - faulty response'});
resolve('all went well');
})
.catch( err => {
throw new Error('error of type B - call failed');
});
}
最佳答案
您会想要use .then(…, …)
instead of .then(…).catch(…)
:
return api.post(endpoint, data).then(response => {
if (!response)
throw {message: 'error of type A - faulty response'};
return 'all went well';
}, err => {
throw new Error('error of type B - call failed');
});
关于javascript - ES6 Promises 在 catch 之前返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43030023/