Чтобы приостановить выполнение до завершения в будущем, используйте await в асинхронной функции (или используйте then()).
Данное утверждение не совсем верно, т.к. then() не приостанавливает выполнение, а возвращает Future которую так же можно приостановить с помощью await, если надо.
Dart 2. Асинхронное программирование: futures