【小程序】循环调用接口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() 方法的参数。