微信小程序 定时及延时

定时

需求场景:每2秒监控一次网络状态的变化,并在网络状态由连接变为未连接、未连接变未连接时通过Toast进行提示。

监听网络状态的变化:微信小程序官方api——wx.onNetworkStatusChange

定时调用:

var interval = setInterval(function () {  
    console.log("不断调用")
    //需不断调用的操作
}, 1000)     //单位ms,会不断调用

取消定时调用:

clearInterval(interval)

每2秒调用一次网络变化监听接口,并通过Toast进行提示

//每隔2秒检查网络连接的变化
var interval = setInterval(function () {
    wx.onNetworkStatusChange(function (res) {    //api,网络状态发生变化时进入下列操作
        //网络状态的返回值res.networkType包括:wifi,2g,3g,4g,unknown,none
        //其中仅有为none时对应的res.isConnected为false,其余为true
        //由于不需要在例如由4g变为3g的时候进行Toast提示,所以需记录变化之前的值
        var temp_isconnected = _this.data.ifnetconnected

        _this.setData({
            ifnetconnected: res.isConnected
        })

        if (_this.data.ifnetconnected == false) {       //网络状态变成未连接时
            _this.nonetconnected()        //调用函数,页面出现Toast,函数内容见下文
        }
        //仅当由未连接状态变为某种连接状态时
        else if (temp_isconnected==false&&_this.data.ifnetconnected == true){   
            _this.netreconnected()        //调用函数,页面出现Toast,函数内容见下文
        }
    })

}, 2000)

.js中的Toast有关函数:


    nonetconnected(){
      $Toast({
        content: '网络连接不可用'
      })
    },

    netreconnected() {
      $Toast({
        content: '已恢复网络连接'
      })
    }

.wxml中的Toast组件,来自iViewUI组件库

    //具体使用方法见文档

 

延时

需求场景:使用Toast提示,由于map组件层级最高,所以应在Toast提示完成之后再显示map。

延时调用:

var timeOut = setTimeout(function () {
    console.log("延迟调用")
    // _this.setData({
    //    showModalStatus: false     控制map是否显示
    // })
}, 1000)

取消延时调用:

clearTimeout(timeOut)

 

 

你可能感兴趣的:(微信小程序)