如何在ArkTS中实现异步任务的取消和超时处理?

阅读 640
1 个回答

在某些情况下,你可能需要取消异步任务或设置超时。

import task from '@ohos.task';

@Entry
@Component
struct Index {
  timer: number | null = null;

  startLongTask() {
    this.timer = setTimeout(() => {
      console.log('Long task completed');
    }, 5000);
  }

  cancelLongTask() {
    if (this.timer) {
      clearTimeout(this.timer);
      console.log('Long task canceled');
    }
  }

  build() {
    Column() {
      Button('Start Long Task')
        .onClick(() => {
          this.startLongTask();
        })
        .width('100%')
        .height(100)
      
      Button('Cancel Long Task')
        .onClick(() => {
          this.cancelLongTask();
        })
        .width('100%')
        .height(100)
    }
    .width('100%')
    .height('100%')
  }
}

startLongTask方法设置了一个5秒后执行的定时器,模拟一个长任务。cancelLongTask方法可以取消这个定时器,模拟异步任务的取消。

参见:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题