checkPolling () {
if (this.state !== this.CONF.STATE.login) {
return
}
let interval = Date.now() - this.lastSyncTime
if (interval > 1 * 60 * 1000) {
let err = new Error(`状态同步超过${interval / 1000}s未响应,5s后尝试重启`)
debug(err)
this.emit('error', err)
clearTimeout(this.checkPollingId)
setTimeout(() => this.restart(), 5 * 1000)
} else {
debug('心跳')
this.notifyMobile()
.catch(err => {
debug(err)
this.emit('error', err)
})
this.sendMsg(this._getPollingMessage(), this._getPollingTarget())
.catch(err => {
debug(err)
this.emit('error', err)
})
clearTimeout(this.checkPollingId)
this.checkPollingId = setTimeout(() => this.checkPolling(), this._getPollingInterval())
}
}
setTimeout 方式实现定时器
猜你喜欢
转载自www.cnblogs.com/au_ww/p/11252297.html
今日推荐
周排行