背景
我们是西安卫生局平台项目,给陕西健康卡完成移动App开发后,进军小程序开发
问题
迁移到登陆验证码获取,需要有倒计时功能,app使用到setTimeout ,出问题了?!死活递归调用不了
耗时
整整一个早晨的战斗,什么 外部定义方法啊 内部传递变量啊 等等。。。最后宣告失败
突破
发现了setInterval倒计时,果然好使。成功运行代码如下
// 60秒后重新获取验证码
var inter = setInterval(function () {
this.setData({
snsCodeMsg: "重新发送(" + this.data.snsMsgWait + ")",
snsMsgWait: this.data.snsMsgWait - 1
});
if (this.data.snsMsgWait < 0) {
clearInterval(inter)
this.setData({
snsCodeMsg: "获取验证码",
snsMsgWait: 60
});
}
}.bind(this), 1000);
注意后面的bind绑定,最关键。不然又是未定义,无法使用外围的变量。
最后
请不要放弃,想要的效果总会出现,坚持换个思路。
沫沫金提供,谢谢你的观看。朋友的软件开发都找我,你也可以。请百度搜索我得名字,你可和我一对一讨论技术。
本文转自 沫沫金 51CTO博客,原文链接:http://blog.51cto.com/zl0828/2043523,如需转载请自行联系原作者