HarmonyOS setTimeout和setInterval计时器某种特定情况下不工作

app的开屏广告页,有个倒计时。倒计时结束后进入主页面。但是登陆后,倒计时就会不工作。

子组件计时器代码:

async aboutToAppear() { 
    setTimeout(() => { 
      hilog.info(0x0000, TAG, '%{public}s', 'setTimeout 已执行' + this.countDownTime); 
    }, 1000) 
    setInterval(()=>{ 
      this.countDownTime -- 
      hilog.info(0x0000, TAG, '%{public}s', 'setInterval 已执行' + this.countDownTime); 
    }, 1000) 
  }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
HarmonyOS
2024-11-08 08:55:20
1234浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

请参考一下demo:

import router from '@ohos.router' 
import { hilog } from '@kit.PerformanceAnalysisKit'; 
@Entry 
@Component 
struct SplashPage { 
  @State timer: number = 0 
  @State interval: number = 0 
  aboutToAppear() { 
    this.doSth() 
  } 
  aboutToDisappear(): void { 
    clearTimeout(this.timer) 
    clearInterval(this.interval) 
  } 
  doSth(){ 
    this.interval = setInterval(()=> { 
      hilog.info(0x0000, 'Interval_TAG', '%{public}s', 'setInterval 已执行'); 
    }, 2000) 
    this.timer = setTimeout(()=> { 
      hilog.info(0x0000, 'Timeout_TAG', '%{public}s', 'setTimeout 已执行'); 
      router.replaceUrl({ url: 'pages/MainPageController'}); 
    }, 2000) 
  } 
  build() { 
    Stack() { 
      // 背景 
      Image($r('app.media.splash')) 
        .width('100%') 
        .height('100%') 
        .objectFit(ImageFit.Cover) 
        .hoverEffect(HoverEffect.None) 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.

​参考文档:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-timer-V5#settimeout

分享
微博
QQ
微信
回复
2024-11-08 17:16:59


相关问题
如何实现一个倒计时器
1069浏览 • 1回复 待解决
HarmonyOS TextTimer 计时器使用问题
820浏览 • 1回复 待解决
HarmonyOS 手机静音情况下,无法震动
722浏览 • 1回复 待解决
HarmonyOS 计步器传感后台不工作
554浏览 • 1回复 待解决
HarmonyOS setInterval()使用
539浏览 • 1回复 待解决
ForEach什么情况下会触发复用
1317浏览 • 2回复 待解决