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

Оператор await

Оператор await используется внутри асинхронных функций и блоков для ожидания результата выполнения будущего (future). Он принимает будущее в качестве операнда и возвращает значение, которое это будущее производит по завершении. Пока будущее не готово, выполнение текущей асинхронной функции приостанавливается, а управление передаётся исполнителю (executor), который может выполнять другие задачи. Оператор await можно применять только внутри асинхронного контекста, то есть внутри функции, помеченной async, или внутри асинхронного блока.

Синтаксис

future.await

Оператор await записывается после выражения, возвращающего будущее, и не требует круглых скобок. Результатом выражения является значение, которое возвращает будущее.

Пример

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

async fn get_number() -> i32 { 42 } async fn main() { let res = get_number().await; println!("{}", res); }

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

42

Пример

Давайте последовательно дождёмся двух асинхронных операций и сложим их результаты:

async fn get_first() -> i32 { 10 } async fn get_second() -> i32 { 20 } async fn main() { let a = get_first().await; let b = get_second().await; let res = a + b; println!("{}", res); }

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

30

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

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