在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ fetch請(qǐng)求如何判斷斷網(wǎng)的情況及處理

fetch請(qǐng)求如何判斷斷網(wǎng)的情況及處理

fetchChange(url,oldPassword, newPassword) {

let formData = new FormData();
formData.append('tokenId',global.tokenId);
formData.append('oldPassword', oldPassword);
formData.append('newPassword', newPassword);
fetch(url,{
   method:'POST',
   headers:{
       'Content-Type':'multipart/form-data',
   },
   body:formData,
 })
 .then((response) => response.json())
 .then((responseJson)=>{console.log('123');
   if(responseJson.code && responseJson.code=='success') {
     Alert.alert(
      '提示',
      '密碼修改成功 !',
      [
        {text: '返回', onPress: () => {
          const {goBack} = this.props.navigation;
          goBack();
          this.setEnable();
        }},
      ]
     )
   } else if(responseJson.errorCode){
     Alert.alert(
      '提示',
      responseJson.errorCode == 'incorrect_old_password' ? '原密碼不正確' : responseJson.errorCode,
      [
        {text: '返回', onPress: () => {console.log('Cancel Pressed!');this.setEnable();}},
      ]
     )
   } else {console.log('123');
     alert('123');
   }
 }).catch((error)=>{console.log(error);alert('連接服務(wù)器出錯(cuò)');this.setEnable();});

}

這樣寫的一個(gè)修改密碼請(qǐng)求,但是如果是斷網(wǎng)情況如何判斷,這樣寫斷網(wǎng)也不會(huì)有任何反饋,一定要重新封裝嗎? 有沒有快速點(diǎn)的方法直接在這段代碼中修改一下就可以得到斷網(wǎng)情況的反饋

回答
編輯回答
悶騷型

navigator.onLine 可以判斷網(wǎng)絡(luò)連接狀態(tài)

2017年9月7日 05:20
編輯回答
夢(mèng)一場

斷網(wǎng)狀態(tài)可以發(fā)生在任何一次網(wǎng)絡(luò)請(qǐng)求,所以應(yīng)該在異常操作里面處理。在異常里面判斷是否是網(wǎng)絡(luò)鏈接終端,如果是則可以發(fā)送廣播,然后全局監(jiān)聽跳轉(zhuǎn)到無網(wǎng)絡(luò)界面。
自己寫的工具類:https://github.com/wuyunqiang...

2017年5月11日 20:30
編輯回答
故林

最終我用的時(shí) Promise.race 賽跑模式達(dá)到目的
_fetchRequest() {

let timeoutAction = null;
const timerPromise = new Promise((resolve, reject) => {//resolve代表成功,reject代表失敗
  timeoutAction = () => {
    reject(checkNetWork)//checkNetWork 只是一個(gè)全局變量字符串,表示在如果timeoutaction先運(yùn)行了就調(diào)用reject失敗方法,超時(shí)
  }
})

Promise.race([
    this.fetchRequestPromise(isExpress),//這個(gè)是你想要調(diào)用的借口
    timerPromise//這個(gè)是判斷時(shí)間的function
]).then(
  (res) => console.log(res), //接收上面resolve中的參數(shù)
  (error) => {
    Alert.alert(
      '提示',
      error,
      [
        {text: '返回', onPress: () => {
          this.setState({disabled: false});
        }},
      ]
    )
  } //接收上面reject中的參數(shù)
);

setTimeout(()=>{
  timeoutAction()
}, waitTime);

}

2018年2月10日 03:42