请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

互动交流 setTimeout 失效【已解决】

5
回复
1030
查看
[复制链接]

2

主题

5

帖子

35

积分

 楼主| 2018-12-11 14:23:57 显示全部楼层 |阅读模式
本帖最后由 SunZm 于 2018-12-11 14:27 编辑

想实现进入某个页面后,延时一段时间执行某个方法,如进入一个页面后,跳转到另一个页面在官方模板代码的基础上添加:
  1. onReady() {
  2.     setTimeout(router.push ({
  3.         uri: '/DemoDetail'
  4.     }), 5000)
  5.     }
复制代码
或者
  1. onInit() {
  2.     setTimeout(router.push ({
  3.         uri: '/DemoDetail'
  4.     }), 5000)
  5.     }
复制代码
亦或是
  1. onShow() {
  2.     setTimeout(router.push ({
  3.         uri: '/DemoDetail'
  4.     }), 5000)
  5.     }
复制代码
都会立刻执行,而不是延迟 5 秒后执行。将
  1. router.push ({
  2.     uri: '/DemoDetail'
  3. })
复制代码
替换成其他函数,如打印一些内容也会立即执行,不知道我的使用方法错在哪里了,还望指教




回复

使用道具 举报

2

主题

5

帖子

35

积分

 楼主| 2018-12-11 14:27:35 显示全部楼层
  1. onInit() {
  2.     setTimeout(function() {
  3.         router.push ({
  4.             uri: '/DemoDetail'
  5.         })
  6.     }, 5000)
  7. }
复制代码

额,改成上面这样就可以了。。。此贴完结
回复

使用道具 举报

2

主题

5

帖子

35

积分

 楼主| 2018-12-11 14:30:27 显示全部楼层
学艺不精,竟然不可以删帖,尴尬了
回复

使用道具 举报

365

主题

621

帖子

5255

积分

2018-12-11 15:07:12 显示全部楼层
没事 留给后人做经验嘛
官方客服微信:kuaiyingyongguanKF
官方QQ群2:1012199894
回复

使用道具 举报

2

主题

7

帖子

45

积分

2020-9-1 14:14:58 显示全部楼层
本帖最后由 谈际昌 于 2020-9-1 14:46 编辑
管理员 发表于 2018-12-11 15:07
没事 留给后人做经验嘛

管理员,setTimeout 函数再次触发不会执行有这样的问题
  1. async clickClose() {
  2.     var self = this
  3.     self.isclose = true;
  4.     let storagek = new storage('setTimeAboutClick');
  5.     var storaget = Math.round(new Date() / 1000);
  6.     storagek.set(storaget)
  7.     setTimeout(function () {
  8.       self.showOpenScreen = false;
  9.       self.adData.img_url = "";
  10.     }, 400);
  11.     self.goShowAdv(self.setTime);
  12.   }
复制代码
  1. async goShowAdv(time) {
  2.     let self = this;
  3.     self.showOpenScreen = true;
  4.     console.log('执行,goShowAdv')
  5.     setTimeout(function () {
  6.       self.showAdv(time)
  7.     }, time * 60000);
  8.   },
复制代码
  1. async showAdv() {
  2.     // clearTimeout(showAdvTime)
  3.     console.log(`再次执行`)
复制代码
clickClose函数执行的时候,无法调用goShowAdv的计时器 showAdv执行,但是第一次直接调用goShowAdv方法 showAdv是会执行的,通过clickClose调用就不可以啦
但是 运行在谷歌浏览器的时候是可以,用快应用编辑器和手机就不行
回复

使用道具 举报

2

主题

7

帖子

45

积分

2020-9-1 18:52:46 显示全部楼层
问题,已经解决是,快应用的缓存问题,在手机上调试,缓存没有清干净
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册