8.3 Task
Task<T, E>— ленивое вычисление. Создаётся в позициях из §6.3 или явноTask.of { … }.- Task перемещаемый и одноразовый: его потребляет ровно одна операция —
await,spawn, комбинатор или запуск цепочки. spawn t(только внутриscope, §8.5) запускает задачу и возвращаетHandle<T, E>:h.join() -> T | E | Cancelled,h.cancel().
| Комбинатор | Результат | Поведение |
|---|---|---|
all(t1, …, tn) | (T1, …, Tn) | E1 | … | En | параллельно; первая ошибка отменяет остальные |
race(t1, …, tn) | T1 | … | Tn | E1 | … | En | первый завершившийся (успех или ошибка), остальные отменяются |
any(t1, …, tn) | T1 | … | Tn | AllFailed | первый успешный; AllFailed содержит все ошибки |
all(list) | List<T> | E | для однотипного списка задач |
Параметры комбинаторов объявлены lazy, поэтому all(Users.get(1), Orders.list(1)) не выполняет вызовы до запуска комбинатора.
Связанные диагностики
См. также
Исходник: docs/spec/oxl-standard.md