HarmonyOS time定时器使用?

需要轮询调用某个接口。使用this.intervalId = setInterval,如果该接口成功返回,就需要关闭定时器,且需要有个返回值告知接口成功了,如何实现?

1、写了一个定时器。然后每次轮询都会+1,当次数够了后,调用clearInterval。这样用对吗?

2、还有就是,这个bindstatus。就是想要的返回值。请问如何在轮询外接收该返回值?

阅读 535
1 个回答

1、可以。

2、定义一个全局变量接收。

@Entry
@Component
struct Page {
  @State message: string = 'Hello World';
  @State test: boolean = false;
  @State intervalId: number = 0;
  @State intervalTimes: number = 0;


  build() {
    RelativeContainer() {
      Text(this.test + '')
        .id('PageHelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .onClick(() => {
          this.intervalId = setInterval((a: boolean) => {
            this.intervalTimes++
            if (this.intervalTimes > 5) {
              a = false
              this.test = a
              clearInterval(this.intervalId)
            } else {
              a = true
              this.test = a
            }
            return a
          }, 2000)
        })
    }
    .height('100%')
    .width('100%')
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进