【小程序】循环调用接口API

在一些需求场景中,需要我们不断的循环调用接口,来查看当前的状态。这种我们都知道使用计时器是一个非常棒的方法。一般考虑服务器的感受,我们会设置 5秒钟。即 5000

//循环调取API状态
  startTimer() {
    if (app.globalData.timer) {
      clearInterval(app.globalData.timer)
    }
    app.globalData.timer = setInterval(() => {
        if (app.globalData.guid) {
          this.getUserData()
        }
    }, 5000)
  },

那么对于前端来说,用户会有所察觉,无法做到无感。那么就很难过(._.)

下面为循环调 api 的方法💁

重新设置变量 getUserDataTimeCount ,利用 app.globalData.getUserDataTimeCount ++;%5,一秒循坏一次的方法,这样可以加快接口的调用,也不会给服务器造成很大的压力。

//循环调取API状态(优化版)
  startTimer() {
    if (app.globalData.timer) {
      clearInterval(app.globalData.timer)
    }
    app.globalData.timer = setInterval(() => {
      if(app.globalData.getUserDataTimeCount % 5 == 0){
        if (app.globalData.guid) {
          this.getUserData()
        }
      }
      app.globalData.getUserDataTimeCount ++;
    }, 1000)
  },

补充🎁

1%5=1 5%5=0

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

经验分享 程序员 微信小程序 职场和发展