РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1101 of 1245 menu

Ключевое слово async

Ключевое слово async превращает обычную функцию или блок кода в асинхронную. Такая функция не выполняется сразу при вызове, а возвращает объект, реализующий трейт Future. Этот объект представляет собой отложенное вычисление, которое будет выполнено только тогда, когда его начнут опрашивать с помощью исполнителя (executor). Ключевое слово async не принимает параметров, но может комбинироваться с await для приостановки выполнения до готовности другого Future.

Синтаксис

async fn function_name() -> ReturnType { // body }

Пример

Давайте создадим простую асинхронную функцию, которая возвращает число, и вызовем её внутри асинхронного блока:

async fn get_number() -> i32 { 42 } fn main() { let future = get_number(); // future is not executed yet println!("Future created"); }

Результат выполнения кода:

"Future created"

Пример

Давайте используем асинхронный блок и await для получения значения из Future:

async fn get_number() -> i32 { 42 } fn main() { let res = async { let num = get_number().await; num + 1 }; println!("Async block created"); }

Результат выполнения кода:

"Async block created"

Смотрите также

  • ключевое слово await,
    которое приостанавливает выполнение до готовности Future
  • трейт Future,
    который представляет асинхронное вычисление
  • метод poll,
    который опрашивает Future на готовность
  • перечисление Poll,
    которое возвращает результат опроса Future
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить