* 执行异步任务并等待完成(封装了启动和等待过程) * @param path API 路径 * @param bodyData 请求体数据 * @param pollInterval 轮询间隔(毫秒),默认使用 ASYNC_TASK_DEFAULTS.pollInterval * @param timeout 超时时间(毫秒),默认使用 ASYNC_TASK_DEFAULTS.timeout * @param signal 用于取消任务的 AbortSignal * @returns 任务是否成功完成
(
path: string,
bodyData: object = {},
pollInterval: number = ASYNC_TASK_DEFAULTS.pollInterval,
timeout: number = ASYNC_TASK_DEFAULTS.timeout,
signal?: AbortSignal
)
| 351 | * @returns 任务是否成功完成 |
| 352 | */ |
| 353 | async function rclone_api_exec_async( |
| 354 | path: string, |
| 355 | bodyData: object = {}, |
| 356 | pollInterval: number = ASYNC_TASK_DEFAULTS.pollInterval, |
| 357 | timeout: number = ASYNC_TASK_DEFAULTS.timeout, |
| 358 | signal?: AbortSignal |
| 359 | ): Promise<boolean> { |
| 360 | const jobid = await rclone_api_post_async(path, bodyData, true) |
| 361 | |
| 362 | if (jobid === undefined) { |
| 363 | console.error(`Failed to start async job for ${path}`) |
| 364 | return false |
| 365 | } |
| 366 | |
| 367 | console.log(`Started async job ${jobid} for ${path}`) |
| 368 | return await rclone_api_wait_for_job(jobid, pollInterval, timeout, signal) |
| 369 | } |
| 370 | |
| 371 | export { |
| 372 | rclone_api_post, |
no test coverage detected