Javascript 了解promse.reject()以及如何将对象作为参数传递
我在Promise.reject中传递response.json,以便它在catch中可用。 然而,在catch中,它是未定义的Javascript 了解promse.reject()以及如何将对象作为参数传递,javascript,node.js,Javascript,Node.js,我在Promise.reject中传递response.json,以便它在catch中可用。 然而,在catch中,它是未定义的 const checkResponse = (response) => { if (response.status >= 200 && response.status < 300) { return response.json(); } else{ return Promise.reject(r
const checkResponse = (response) => {
if (response.status >= 200 && response.status < 300) {
return response.json();
}
else{
return Promise.reject(response.status,response.json());
}
}
catch中的resp显示为未定义的。拒绝和。仅接受一个参数。您可以将其作为对象传递:
return Promise.reject({ status: response.status, body: response.json() });
还使用return response.json;似乎前后矛盾。如果它返回一个承诺,那么你不能在承诺中使用它。拒绝,因为你会得到承诺而不是身体。如果它不返回承诺,则只返回失败条件的承诺。拒绝只接受一个参数。如果您想要传递多个数据段,那么您需要将它们捆绑在一个对象中
var p=新承诺
res,rej=>rej{
状态:状态,
数据:{
一些人:反对
}
}
;
p、 catchreason=>console.logRejected、reason.status、reason.data;首先,Promise.reject只接受一个参数。是的,它确实返回一个Promise。构造的对象并没有比直接拒绝响应更有帮助。没错,您可以只做Promise.rejectresponse
return Promise.reject({ status: response.status, body: response.json() });