Я все еще борюсь с шаблоном асинхронности / ожидания, поэтому я здесь, чтобы спросить вас о некоторых точностях.
Я видел эту страницу , довольно хорошо объясняющую шаблон асинхронности / ожидания. Я публикую здесь пример, который беспокоит меня:
import 'dart:async';
Future<String> firstAsync() async {
await Future<String>.delayed(const Duration(seconds: 2));
return "First!";
}
Future<String> secondAsync() async {
await Future<String>.delayed(const Duration(seconds: 2));
return "Second!";
}
Future<String> thirdAsync() async {
await Future<String>.delayed(const Duration(seconds: 2));
return "Third!";
}
void main() async {
var f = await firstAsync();
print(f);
var s = await secondAsync();
print(s);
var t = await thirdAsync();
print(t);
print('done');
}
В этом примере каждый метод async
вызывается один за другим, поэтому время выполнения основной функции составляет 6 секунд (3 x 2 секунды). Однако я не понимаю, в чем смысл асинхронной функции, если они выполняются одна за другой.
Функции async
не должны выполняться в фоновом режиме? Разве это не смысл нескольких async
функций для ускорения процесса с параллельным выполнением?
Я думаю, что мне чего-то не хватает в асинхронных функциях и шаблоне async / await во флаттере, поэтому, если бы вы могли объяснить мне это, это было бы очень признательно.
Лучший