RN 類似多線程的例子

在項目中有切換月份進行網絡請求數據刷新頁面,從而就會出現先發得網絡請求後回來的問題,如何解決呢,在同事的指導下加臨時變量解決了這個問題。Demo如下:

1.在頁面加兩個按鈕,分別點擊按鈕,進行延時模擬網絡請求


//加一個全局變量
this.msg = ‘’;

//按鈕
<TouchableOpacity style= {{marginTop:18,height:50,backgroundColor:'red'}} onPress  = {this.goToNextPage}></TouchableOpacity>
<TouchableOpacity style= {{marginTop:18,height:50,backgroundColor:'yellow'}} onPress  = {this.goToNextPage1}></TouchableOpacity>

//點擊時間
 goToNextPage = ()=> {
    this.msg = '3';
    this.test();
 }

 goToNextPage1 = ()=> {
    this.msg = '4';
    this.test();
 }

 test=()=> {
    let msg = this.msg;               
    Network.sendMessageTest(msg,(result)=>{
        if (msg == this.msg ) {
            console.warn('數字是一樣的' + msg  + this.msg);
         } else {
            console.warn('數字是一樣的'+ msg  + this.msg);
         }
    });
 }

//模擬網絡請求
 sendMessageTest = (msg, success,)=> {
   if (msg === '4') {
      this.timer0 = setTimeout(
        () => { 
          success('這是4');
          console.warn('這是4');
       },
      200 //延時時間
   );
 }

  if (msg === '3') {
    this.timer1 = setTimeout(
      () => { 
         success('這是3');
         console.warn('這是3');
     },
     3000 //延時時間
   );
  }


    }

  感覺網絡發出去以後,類似多線程,還是沒明白,有待進一步探索。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章