Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtSpAsDl 93 of 224 menu
◀ ▶

Future.delayed в Dart

Когда нужно подождать, не стоит крутить пустой цикл. Future.delayed принимает Duration, откладывает продолжение async-функции и возвращает управление очереди событий до срабатывания таймера.

После await выполнение идет со следующей строки. Проверить это можно на двух метках до и после паузы:

void main() async { print("tick"); await Future.delayed(Duration(milliseconds: 100)); print("tock"); }

Между "tick" и "tock" проходит не меньше заданной задержки. Текущая async-функция приостановлена, но процесс не занят бесконечным ожиданием в цикле.

Несколько пауз подряд задают ритм шагам. Каждый Future.delayed откладывает только текущую async-функцию:

void main() async { for (var index = 0; index < 3; index++) { print(index); await Future.delayed(Duration(milliseconds: 50)); } }

В консоли появляются 0, 1 и 2 с промежутками между строками. Так Future.delayed разносит печать во времени внутри одной async-функции.

В main с async выведите "wait", сделайте паузу на 200 миллисекунд и напечатайте "go".

Три раза подряд выведите букву "x", между строками делая паузу на 30 миллисекунд. Весь цикл разместите в main с async.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить