Как исправить проблему нестабильности сети и сбой сетевого запроса - PullRequest
0 голосов
/ 06 октября 2018

Привет, ребята. Я использую сетевую функцию для всех моих классов для отправки данных на сервер, и я получил внезапную ошибку типа error:network request failed.

Я получил следующее сообщение, когда вижу в инспекторе переключателей, это показываетresponseURL undefined и status : 0.

Я хочу знать, как вызвать функцию componentdidmount при сбое запроса и как определить, откуда вызывается функция из

class senddatatoNetwork extend component{
    componentDidmount(){
        let data = new FormData();
        data.append('methodName',       'items_list');
        if(this.state.isConnected == true)
        {
          Sendshoppinapi(data).then((responseJson)=>{
          this.setState({subscriptions: responseJson.details_app});
          this.setState({isLoading: false});
          console.warn(responseJson.status);
        }).then((responseJson)=>{
          if( responseJson.responseURL  === undefined)
          {
            this.componentDidMount()
          }

        })}
        else{
          this.setState({isLoading :true})
        }
    }
}

Сетьфункция моего проекта

  async function Sendshoppinapi(data) {
      try {
          let response = await fetch(shoppingApi, {
              method: 'POST',
              headers: {
                  'Accept': 'application/json',
                  'content-type':'multipart/form-data'
              },
              body: data
          }).then(statusHelper)
          let responseJson = response.json();
          return responseJson;
      }
      catch (error) {
          //console.error(`Error is : ${error}`);
          Alert.alert('Server error' + error.toString())//);
      }
  }

function statusHelper (response) {
  if (response.status >= 200 && response.status < 300) {
    return Promise.resolve(response)
  } else {
    return Promise.reject(new Error(response.statusText))
  }
}
...