小程序
小游戏
企业微信
微信支付
扫描小程序码分享
我在app.js定义了一个全局的计时器,定时每10秒去拉取一次结费通知,现在发现有时候会导致点击页面上的按钮没反应的问题,不知道有没有遇到过这种问题的老铁,能不能给个思路
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
定时器中是否有频繁的setData操作?
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
没有,只是查询是否有结费通知,有结费通知就会跳转另一个页面,没有结费通知的话,就没处理
麻烦确认下去掉定时器后是否还会有按钮点击没反应的问题?是否方便提供下定时器执行的代码?
app.js文件:
App({
setInterval(this.getTravelOrder, 10000)
},
getTravelOrder: function () {
console.log('token==='+this.globalData.token)
if (this.globalData.token){
//已登录,请求结费通知
var config = require('./config.js');
wx.request({
url: config.getListNotReadOprecSettles,
data: {
uid: this.globalData.telPhone,
header: {
'content-type': 'application/json'
method: 'GET',
success: function (res) {
console.log('结费通知消息==='+JSON.stringify(res))
if (res.data.success == 1008) {
console.log("无已结算订单")
} else if (res.data.success == 1000) {
var pageData = res.data.data;
wx.redirectTo({
url: '/pages/Umbrella_fee/Umbrella_fee?orderId=' + pageData[0].orderId + "&goodsNo=" + pageData[0].goodsNo
});
}
fail: function (res) {
console.log('获取结费通知失败===' + JSON.stringify(res))
})
}else{
console.log('app.js计时器用户没有登录')
globalData: {
telPhone: '',//手机号
isLogin: false,//登陆状态
hasFinishRegister: 0,//用户的标识状态
windowWidth: 0,//屏幕的宽
windowHeight: 0, //屏幕的高
cost: '',//骑行消费金额
use_time: '',//骑行时间
balance: -1,//钱包余额
orderId: '',//本次骑行的订单号
accountDeposit: 0,//用户的押金余额
realNameState: '0',//实名制认证的状态
state: false,//自行车的状态
isScanCode:true, //是否可以扫码
token:'', //登录的token
userInfo: null,
latitude: '',
longitude: '',
isFinishOrder: true,
isFirst:true,
inviter:'', //邀请人账号
isRead:true,
depositCount:"0",
这种问题是偶发性的,去掉计时器没试出来
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
定时器中是否有频繁的setData操作?
没有,只是查询是否有结费通知,有结费通知就会跳转另一个页面,没有结费通知的话,就没处理
麻烦确认下去掉定时器后是否还会有按钮点击没反应的问题?是否方便提供下定时器执行的代码?
app.js文件:
App({
setInterval(this.getTravelOrder, 10000)
},
getTravelOrder: function () {
console.log('token==='+this.globalData.token)
if (this.globalData.token){
//已登录,请求结费通知
var config = require('./config.js');
wx.request({
url: config.getListNotReadOprecSettles,
data: {
uid: this.globalData.telPhone,
},
header: {
'content-type': 'application/json'
},
method: 'GET',
success: function (res) {
console.log('结费通知消息==='+JSON.stringify(res))
if (res.data.success == 1008) {
console.log("无已结算订单")
} else if (res.data.success == 1000) {
var pageData = res.data.data;
wx.redirectTo({
url: '/pages/Umbrella_fee/Umbrella_fee?orderId=' + pageData[0].orderId + "&goodsNo=" + pageData[0].goodsNo
});
}
},
fail: function (res) {
console.log('获取结费通知失败===' + JSON.stringify(res))
}
})
}else{
console.log('app.js计时器用户没有登录')
}
},
globalData: {
telPhone: '',//手机号
isLogin: false,//登陆状态
hasFinishRegister: 0,//用户的标识状态
windowWidth: 0,//屏幕的宽
windowHeight: 0, //屏幕的高
cost: '',//骑行消费金额
use_time: '',//骑行时间
balance: -1,//钱包余额
orderId: '',//本次骑行的订单号
accountDeposit: 0,//用户的押金余额
realNameState: '0',//实名制认证的状态
state: false,//自行车的状态
isScanCode:true, //是否可以扫码
token:'', //登录的token
userInfo: null,
latitude: '',
longitude: '',
isFinishOrder: true,
isFirst:true,
inviter:'', //邀请人账号
isRead:true,
depositCount:"0",
}
})
这种问题是偶发性的,去掉计时器没试出来