Skip to main content
在 Youka 中,每个异步操作最终都会以任务的形式运行,但目前 SDK 的主要接口会返回操作句柄,而不是原始任务 ID。大多数调用方应该使用 client.projects.wait(...)client.exports.wait(...),只有在需要进行底层任务检查时才使用 client.tasks.*

client.tasks.get(taskId, options?)

按 ID 获取任务的当前状态。

任务状态

client.tasks.wait(taskId, options?)

轮询任务,直到它进入终态。成功时返回最终任务;失败时抛出 YoukaTaskError

选项

number
两次轮询之间的毫秒数。默认为 2000
AbortSignal
中止等待。进行中的请求以及任何尚未执行的延迟都会立即取消。

错误

当任务以 failedcancelledtimed-out 结束时,client.tasks.wait(...) 会抛出 YoukaTaskError

client.projects.wait(operation, options?)

等待项目范围内的操作完成,然后重新获取项目。返回操作句柄、进入终态的任务以及更新后的项目。
ProjectOperation
required
通常是 client.projects.create(...)client.projects.separateStems(...)client.projects.syncLyrics(...) 的返回结果。

client.exports.wait(operationOrId, options?)

等待云端导出进入终态。可传入 client.exports.create(...) 返回的 ExportOperation,或一个 exportId 字符串。

取消

传入 AbortSignal 以取消长时间等待:
同一个 signal 也会取消底层的任务或导出轮询请求。

下一步

  • 错误 — 处理 YoukaTaskError 和可重试错误
  • 导出 — 等待导出完成
  • API async jobs — 在原始 HTTP 中使用相同模式