client.projects.wait(...) 或 client.exports.wait(...),只有在需要进行底层任务检查时才使用 client.tasks.*。
client.tasks.get(taskId, options?)
按 ID 获取任务的当前状态。
任务状态
| 状态 | 终态? | 含义 |
|---|---|---|
created | 否 | 任务已创建,但尚未进入队列。 |
queued | 否 | 任务正在等待运行。 |
in-progress | 否 | 任务正在执行中。 |
completed | 是 | 任务已成功完成。 |
finalized | 是 | 任务已完成,且后处理已结束。 |
failed | 是 | 任务因错误而失败。 |
cancelled | 是 | 任务已被取消。 |
timed-out | 是 | 任务已达到时间限制。 |
client.tasks.wait(taskId, options?)
轮询任务,直到它进入终态。成功时返回最终任务;失败时抛出 YoukaTaskError。
选项
两次轮询之间的毫秒数。默认为
2000。中止等待。进行中的请求以及任何尚未执行的延迟都会立即取消。
错误
当任务以failed、cancelled 或 timed-out 结束时,client.tasks.wait(...) 会抛出 YoukaTaskError:
client.projects.wait(operation, options?)
等待项目范围内的操作完成,然后重新获取项目。返回操作句柄、进入终态的任务以及更新后的项目。
通常是
client.projects.create(...)、client.projects.separateStems(...) 或 client.projects.syncLyrics(...) 的返回结果。client.exports.wait(operationOrId, options?)
等待云端导出进入终态。可传入 client.exports.create(...) 返回的 ExportOperation,或一个 exportId 字符串。
取消
传入AbortSignal 以取消长时间等待:
下一步
- 错误 — 处理
YoukaTaskError和可重试错误 - 导出 — 等待导出完成
- API async jobs — 在原始 HTTP 中使用相同模式
