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

Конструктор microtask

Конструктор microtask класса Future планирует выполнение переданной функции в очереди микрозадач и возвращает объект Future. В первый параметр мы передаем функцию, которую нужно выполнить асинхронно. Микрозадача выполняется после завершения текущего синхронного кода, но перед передачей управления циклу событий. Если функция выбрасывает исключение, возвращаемый Future завершается с ошибкой.

Синтаксис

Future.microtask(Function computation)

Пример

Давайте запланируем микрозадачу и посмотрим, в каком порядке выполняются строки кода:

void main() { print('start'); Future.microtask(() { print('microtask'); }); print('end'); }

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

"start" "end" "microtask"

Как видно из результата, микрозадача выполняется после завершения всего синхронного кода функции main, но раньше, чем задачи из очереди событий.

Пример

Давайте получим значение из микрозадачи через метод then:

void main() { Future.microtask(() { return 'abcde'; }).then((value) { print(value); }); print('sync'); }

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

"sync" "abcde"

Пример

Давайте посмотрим, как обрабатывается ошибка, выброшенная внутри микрозадачи:

void main() { Future.microtask(() { throw Exception('error'); }).catchError((error) { print('caught: $error'); }); print('sync'); }

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

"sync" "caught: Exception: error"

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

  • класс Future,
    который представляет результат асинхронной операции
  • метод sync,
    который создаёт Future из синхронного значения
  • метод delayed,
    который планирует выполнение через промежуток времени
  • метод then,
    который обрабатывает результат Future
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить