Javascript 了解promse.reject()以及如何将对象作为参数传递

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

我在Promise.reject中传递response.json,以便它在catch中可用。 然而,在catch中,它是未定义的

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() });