小程序
小游戏
企业微信
微信支付
扫描小程序码分享
可是我已经清除了定时器啊,为什么还是会检测出来
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
麻烦问下 问题的第一个图 哪来的 我也想定位下内存告警原因
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
saoheijubao: function () {
if(wx.getStorageSync('login')){
var that = this;
wx.request({
url: app.globalData.apiurl + 'appShouji/isAccreditation',
data: {
user_msg_id_: wx.getStorageSync('user_msg_id_')
},
header: {},
method: 'GET',
dataType: 'json',
responseType: 'text',
success: function (res) {
console.log(res)
wx.hideLoading()
if (res.data.data.code == 200) {
wx.navigateTo({
url: '../../pages/saoheijubao/index',
})
}
else if (res.data.data.code == 201) {
var tit = '用户未实名认证';
app.showToast(tit)
var timerTem = setTimeout(function (res) {
url: '../../pages/shimingrenzheng/index?code=' + res.data.data.code,
}, 1000)
} else if (res.data.data.code == 202) {
var tit = '实名认证审核中,请耐心等待';
} else if (res.data.data.code == 203) {
var tit = '实名认证未通过,请重新上传资料';
var timerTem2 =setTimeout(function (res) {
that.setData({
timerTem2: timerTem2
}else{
url: '../../pages/login/index',
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
clearTimeout(this.data.timerTem)
clearTimeout(this.data.timerTem2)
* 生命周期函数--监听页面卸载
onUnload: function() {
小程序闪退是什么原因呢,安卓苹果都不行
可以检查一下代码逻辑,看看是否有死循环
那会不会和settimeout太多有关系呢?需要cleartimeout吗?求解释
可以按这个提示处理一下
我想你应该打印下拿到定时器ID没有? 因为我也这样使用过 不存在说清除不掉
拿到了,也能打印出来,你那个是怎么写的,不是把它setdata然后监听页面消失后清除吗
你在定时器里放个打印标记,清掉定时器之后,检验下定时器还有没有执行不就知道了,如果清掉之后定时器里代码面的代码没有执行,说明开发工具有问题,升级下看看,如果清掉之后,里面的代码还在执行,你就得检查检查你的代码了
在新跳转的页面onload里面清除定时器不就行了
那和监听页面隐藏和卸载以后清除定时器不是一样吗?在新页面清除定时器得知道取消的定时器的 ID, 现在是明明已经清楚了,还是会提示清除定时器
取消定时器的ID不就是你定义的时候定义的吗,传参传过去不就行了,而且你清理定时器写的那段确定执行了吗,cleartimeout()里的参数是定时器ID,你传的参数不是个变量吗。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
麻烦问下 问题的第一个图 哪来的 我也想定位下内存告警原因
麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
saoheijubao: function () {
if(wx.getStorageSync('login')){
var that = this;
wx.request({
url: app.globalData.apiurl + 'appShouji/isAccreditation',
data: {
user_msg_id_: wx.getStorageSync('user_msg_id_')
},
header: {},
method: 'GET',
dataType: 'json',
responseType: 'text',
success: function (res) {
console.log(res)
wx.hideLoading()
if (res.data.data.code == 200) {
wx.navigateTo({
url: '../../pages/saoheijubao/index',
})
}
else if (res.data.data.code == 201) {
var tit = '用户未实名认证';
app.showToast(tit)
var timerTem = setTimeout(function (res) {
console.log(res)
wx.navigateTo({
url: '../../pages/shimingrenzheng/index?code=' + res.data.data.code,
})
}, 1000)
} else if (res.data.data.code == 202) {
var tit = '实名认证审核中,请耐心等待';
app.showToast(tit)
} else if (res.data.data.code == 203) {
var tit = '实名认证未通过,请重新上传资料';
app.showToast(tit)
var timerTem2 =setTimeout(function (res) {
console.log(res)
wx.navigateTo({
url: '../../pages/shimingrenzheng/index?code=' + res.data.data.code,
success: function (res) {
that.setData({
timerTem2: timerTem2
})
},
})
}, 1000)
}
},
})
}else{
wx.navigateTo({
url: '../../pages/login/index',
})
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
clearTimeout(this.data.timerTem)
clearTimeout(this.data.timerTem2)
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
clearTimeout(this.data.timerTem)
clearTimeout(this.data.timerTem2)
},
小程序闪退是什么原因呢,安卓苹果都不行
可以检查一下代码逻辑,看看是否有死循环
那会不会和settimeout太多有关系呢?需要cleartimeout吗?求解释
可以按这个提示处理一下
我想你应该打印下拿到定时器ID没有? 因为我也这样使用过 不存在说清除不掉
拿到了,也能打印出来,你那个是怎么写的,不是把它setdata然后监听页面消失后清除吗
你在定时器里放个打印标记,清掉定时器之后,检验下定时器还有没有执行不就知道了,如果清掉之后定时器里代码面的代码没有执行,说明开发工具有问题,升级下看看,如果清掉之后,里面的代码还在执行,你就得检查检查你的代码了
在新跳转的页面onload里面清除定时器不就行了
那和监听页面隐藏和卸载以后清除定时器不是一样吗?在新页面清除定时器得知道取消的定时器的 ID, 现在是明明已经清楚了,还是会提示清除定时器
取消定时器的ID不就是你定义的时候定义的吗,传参传过去不就行了,而且你清理定时器写的那段确定执行了吗,cleartimeout()里的参数是定时器ID,你传的参数不是个变量吗。