Javascript 使用fetch.catch时在控制台中获取错误

Javascript 使用fetch.catch时在控制台中获取错误,javascript,fetch-api,Javascript,Fetch Api,我有以下代码: fetch( url, { ...data } ).then((response) => { if (!response.ok) throw new Error(response.statusText); return response.json(); }).then((response) => { resolve(response); }).catch((error) => { console.log('error', error);

我有以下代码:

fetch(
  url,
  { ...data }
).then((response) => {
  if (!response.ok) throw new Error(response.statusText);
  return response.json();
}).then((response) => {
  resolve(response);
}).catch((error) => {
  console.log('error', error);
  reject(error);
});
当我执行一个请求并得到一个404时,console.log'error'行运行,但我仍然在控制台中得到一个错误:

GET https://swapi.co/api/people/0/ 404 ()

Uncaught (in promise) Error
    at http.js:10
我不明白为什么会发生这种情况,如果catch块正在运行,为什么它会在promise中显示uncaught?

您称之为reject,因此此指向的承诺将被拒绝,如果您没有捕获,则表示未捕获。要解决此问题,请参见:


因为你在那之后马上拒绝了别的东西?拒绝错误;什么是拒绝?我想这是因为你拒绝了错误;在您的console.log之后。如果将其删除,则返回错误;,发生了什么?是的,我刚刚测试过,这似乎就是问题所在。谢谢你的澄清。任何人都可以把这个作为答案,我会接受的!