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) 
  }
HarmonyOS
2024-11-08 08:55:20
浏览
收藏 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) 
    } 
  } 
}

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

分享
微博
QQ
微信
回复
2024-11-08 17:16:59
相关问题
如何实现一个倒计时器
455浏览 • 1回复 待解决
HarmonyOS TextTimer 计时器使用问题
35浏览 • 1回复 待解决
HarmonyOS setInterval()使用
46浏览 • 1回复 待解决
ForEach什么情况下会触发复用
728浏览 • 2回复 待解决
如何在多设备情况下使用hdc
723浏览 • 2回复 待解决
什么情况下会使用多Module
2337浏览 • 1回复 待解决