收藏
回答

我在setInterval定时器中写了一个request打断点却一直进不去success,fail?

我真机调试测试,写了一个wx.request()方法,访问后台服务,后台服务日志打印也正常,但是前台就是进不去success,fail.complete也进不去,不知道怎么回事,求大神解答()

getPushStatus: function (transid) {//获取推流服务实时状态

   let that = this;

   var text = '';

   wx.request({

     url: 'https://demo.i2safe.net:9443/front-mid/get.status.do',

     method: 'POST',

     data: {

       trans_id:transid

     },

     header: {

       'content-type': 'application/x-www-form-urlencoded'

     },

     fail(res){

       console.log("错误:"+res);

     },

     success(res){

       console.log(res)

       if(res.data.status === '60000'){

         text = '图像采集成功'

         clearInterval(that.data.timer);

         that.pusher.stop();

         wx.redirectTo({

           url: '../common/tipclose?error=false&transid=' + that.transid,

         })

       }else{

         if (res.data.status === '60100'){

           text = '发现多个人脸'

         } else if (res.data.status === '60101'){

           text = '没有检测到人脸'

         } else if (res.data.status === '60200') {

           text = '人脸下部越界'

         } else if (res.data.status === '60201') {

           text = '人脸上部越界'

         } else if (res.data.status === '60202') {

           text = '人脸左侧越界'

         } else if (res.data.status === '60203') {

           text = '人脸右侧越界'

         } else if (res.data.status === '60204') {

           text = '人脸太小100*100'

         } else if (res.data.status === '60300') {

           text = '图像不清晰'

         } else if (res.data.status === '60400') {

           text = '未知错误'

         } else if (res.data.status === '60500') {//返回码等于60500的时候,直接进去关闭页面,并且给到参数false

           text = '人脸未取到';

           clearInterval(that.data.timer);

           that.pusher.stop();

           wx.redirectTo({

             url: '../common/tipclose?error=true&transid='+that.transid,

           })

         } else if (res.data.status === '60600') {//返回码等于60500的时候,直接进去关闭页面,并且给到参数false

           text = '人脸获取到并发给中控';

           clearInterval(that.data.timer);

           that.pusher.stop();

           wx.redirectTo({

             url: '../common/tipclose?error=true&transid='+that.transid,

           })

         }

       }

       that.setData({

         statusText:text

       })

     },

     complete(res){

       console.log(res)

     }

   })


 },

以上是源码,访问地址没有问题,每次跳到request里,但是就是进不去回调。


这是后台日志返回的参数,json字符串,也没有问题,可是进不去success,无法提取出来,前后台都没有报错

回答关注问题邀请回答
收藏

5 个回答

  • 是小白啊
    是小白啊
    2019-09-23

    麻烦提供能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-09-23
    有用
    回复
  • 孙伟
    孙伟
    2019-09-23

    console.log(res)没有输出?

    console.log(typeof res,res);先注释掉后面的代码 试试

    2019-09-23
    有用
    回复 1
    • LINXY
      LINXY
      2019-09-23
      我照您的试了,很奇怪,不加断点的时候console都能打出来返回值,反而是加了断点不行,加了断点进不去success,也打印不出来
      2019-09-23
      回复
  • Listen
    Listen
    2019-09-23

    头皮发麻的if else  就不能用个 switch case ?

    2019-09-23
    有用
    回复 4
    • LINXY
      LINXY
      2019-09-23
      不好意思。。。。我现在把判断都去掉,执行,在success里就执行一个console的log,把res打印出来,可还是不成功,在app.js中就可以执行成功
      2019-09-23
      回复
    • LINXY
      LINXY
      2019-09-23
      您能帮我再看一下吗,我在想会不会和我写在定时任务中有关系啊。我的页面是打开后启动推流,触发定时任务,定时任务不断去获取实时的推流状态
      2019-09-23
      回复
    • Listen
      Listen
      2019-09-23回复LINXY

      定时器方法走了吗?

      setInterval(_=>{  debugger     wx.requset({         ...         success: res=>{             debugger         }     }) },1000)

      把你的 debugger 都给它加上就能知道了啊

      2019-09-23
      回复
    • LINXY
      LINXY
      2019-09-23回复Listen
      定时器走了,因为我定时器还有一个读秒文本,读秒一直在正常执行
      2019-09-23
      回复
  • error
    error
    2019-09-23

    network返回结果正常吗,你把代码简化一下请求看看,定位一下问题呢

    2019-09-23
    有用
    回复 1
    • LINXY
      LINXY
      2019-09-23
      我把那堆判断都去掉了,然后请求服务,但是还是进不到success,fail,也并没有报错,我把同样的方法拿到app.js的onload执行就可以进入
      2019-09-23
      回复
  • LINXY
    LINXY
    2019-09-23

    这是我把简化后的方法拿到app.js中,执行没有问题

    我原页面这个简化后的方法一模一样的方法,在定时任务中还是进不到success中

    2019-09-23
    有用
    回复
登录 后发表内容
问题标签