Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-如何处理获取中的404错误?_Javascript_Reactjs_React Native - Fatal编程技术网

JavaScript-如何处理获取中的404错误?

JavaScript-如何处理获取中的404错误?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,当我调用请求函数传递一个我知道会出现404错误的号码时,我无法处理它,我不知道如何处理 async request(number) { var request = "https://reqres.in/api/users/"+number; fetch(request, {method: "GET"}) .then((response) => { return response.json(); }) .then((responseJs

当我调用请求函数传递一个我知道会出现404错误的号码时,我无法处理它,我不知道如何处理

async request(number) {
    var request = "https://reqres.in/api/users/"+number;

    fetch(request, {method: "GET"})
    .then((response) => {
      return response.json(); 
    })
    .then((responseJson) => {
      this.setState({nombre:responseJson.data.first_name})
    })
    .catch((error) => {
      this.setState({nombre:error})
    }).done();
}

完整代码:

您可以检查响应状态以处理404或其他错误 使用以下示例:

fetch('your url goes here')
  .then(response => {
    if (response.ok) {
      return response.json()
    } else if(response.status === 404) {
      return Promise.reject('error 404')
    } else {
      return Promise.reject('some other error: ' + response.status)
    }
  })
  .then(data => console.log('data is', data))
  .catch(error => console.log('error is', error));

错误404通常被解释为(某种)成功,不进入
catch
部分。但您可以通过抛出错误将其发送到
catch
,如:

fetch(
要求
)。然后((/**@type{Response}*/Response)=>
{
如果(response.ok){
返回response.json();
}否则{
抛出“一些错误文本”;
}
})。然后((responseJson)=>
{
//以成功回应某事
})。捕获((错误)=>
{
//各种可能的错误,甚至404
} );