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 //延时时间
   );
  }


    }

  感觉网络发出去以后,类似多线程,还是没明白,有待进一步探索。

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