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.Прервать ожидание. Запрос «в полёте» и любая ожидающая задержка отменяются
немедленно.
Ошибки
client.tasks.wait(...) выбрасывает YoukaTaskError, когда задача завершается в состоянии failed, cancelled или timed-out:
client.projects.wait(operation, options?)
Дождаться завершения операции в рамках проекта, затем заново получить проект. Возвращает хэндл операции, терминальную задачу и обновлённый проект.
Обычно это результат
client.projects.create(...),
client.projects.separateStems(...) или client.projects.syncLyrics(...).client.exports.wait(operationOrId, options?)
Дождаться, пока облачный экспорт не перейдёт в терминальное состояние. Передайте либо ExportOperation, возвращаемый client.exports.create(...), либо строку exportId.
Отмена
ПередайтеAbortSignal, чтобы отменить длительное ожидание:
Что дальше
- Errors — обработка
YoukaTaskErrorи ошибок, допускающих повтор - Exports — ожидание завершения экспорта
- API async jobs — тот же паттерн в «сыром» HTTP
