import { tasksAPI } from '../api' const POLL_INTERVAL = 1000 const MAX_POLL_ATTEMPTS = 30 /** * 轮询任务状态直到完成或失败 * @param {string} taskId * @returns {Promise} */ export async function pollTaskStatus(taskId) { for (let i = 0; i < MAX_POLL_ATTEMPTS; i++) { await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL)) const response = await tasksAPI.getTaskStatus(taskId) if (response.code !== 200) { continue } const status = response.data.status if (status === 'completed' || status === 'failed') { return response } } return { code: 200, message: '任务进行中,请稍后刷新查看结果', data: { task_id: taskId, status: 'running' } } }