Функция unawaited
Функция unawaited из библиотеки dart:async
используется для явного указания того, что возвращаемый
Future намеренно не ожидается. В первый параметр
мы передаём сам объект Future, который не нужно
ожидать. Функция не возвращает никакого значения
(возвращает void). Это помогает анализатору кода
понять, что отсутствие await является осознанным
решением, а не ошибкой.
Синтаксис
unawaited(future)
Пример
Давайте вызовем асинхронную функцию без await,
явно обернув её в unawaited:
import 'dart:async';
Future<void> fetchData() async
{
await Future.delayed(Duration(seconds: 1));
print('Data loaded');
}
void main()
{
unawaited(fetchData());
print('Main finished');
}
Результат выполнения кода:
"Main finished"
"Data loaded"
Пример
Давайте сравним поведение с await и без него,
используя unawaited для намеренного пропуска ожидания:
import 'dart:async';
Future<int> compute() async
{
await Future.delayed(Duration(seconds: 1));
return 42;
}
void main()
{
unawaited(compute());
print('Not waiting');
}
Результат выполнения кода:
"Not waiting"
Смотрите также
-
ключевое слово
async,
которое помечает функцию как асинхронную -
оператор
await,
который ожидает завершения Future -
функция
scheduleMicrotask,
которая планирует выполнение микрозадачи -
функция
unawaited,
которая явно указывает на пропуск ожидания