HarmonyOS 将订阅下载任务进度事件实现同步效果

订阅的下载相关事件为异步,使用callback形式返回。导致downloadTask.on('complete', completeCallback) 代码语句之后的代码会先于completeCallback函数执行。这部分代码又不想放置于completeCallback函数中。请问有什么方案能实现先执行completeCallback函数,然后执行downloadTask.on('complete', completeCallback)之后的代码?

HarmonyOS
2024-12-23 15:22:29
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
fox280

可以参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-taskpool-V5#adddependency11

示例代码:

@Concurrent
function delay(args: number): number {
  let t: number = Date.now();
  while ((Date.now() - t) < 1000) {
    continue;
  }
  return args;
}

let task1: taskpool.Task = new taskpool.Task(delay, 100);
let task2: taskpool.Task = new taskpool.Task(delay, 200);
let task3: taskpool.Task = new taskpool.Task(delay, 200);

console.info("dependency: add dependency start");
task1.addDependency(task2);
task2.addDependency(task3);
console.info("dependency: add dependency end");

console.info("dependency: start execute second")
taskpool.execute(task1).then(() => {
  console.info("dependency: second task1 success");
})
taskpool.execute(task2).then(() => {
  console.info("dependency: second task2 success");
})
taskpool.execute(task3).then(() => {
  console.info("dependency: second task3 success");
})
  • 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.
分享
微博
QQ
微信
回复
2024-12-23 18:54:50
相关问题
HarmonyOS axios不回调下载进度
621浏览 • 1回复 待解决
HarmonyOS 订阅续订订单同步方案咨询
808浏览 • 1回复 待解决
HarmonyOS 事件订阅 emitter问题
1573浏览 • 1回复 待解决
DTS订阅对象可以同步几个表?
2903浏览 • 1回复 待解决
HarmonyOS 如何监听下载文件的进度
1033浏览 • 1回复 待解决
用户订阅系统公共事件
1983浏览 • 1回复 待解决
HarmonyOS 如何异步数据改成同步
1110浏览 • 1回复 待解决
HarmonyOS 文件下载并且同步进行预览
760浏览 • 1回复 待解决
HarmonyOS 怎样实现进度
1120浏览 • 1回复 待解决
Watcher接口如何订阅到OS的崩溃事件
1423浏览 • 1回复 待解决