#android #flutter #dart
#Android #флаттер #dart
Вопрос:
HTTP-библиотека Dart основана на асинхронных сокетах. Это означает, что любой http-вызов является асинхронным. Из того, что я собрал, вызовы ОС также выполняются асинхронно. У меня есть приложение для Android, которое должно выполнять несколько вызовов на разные веб-страницы, каждая из которых зависит от материала, собранного из предыдущего вызова. Это было бы кошмаром для асинхронного выполнения, и мне было интересно, есть ли какой-либо способ избежать этого.
Комментарии:
1. Асинхронность заразна. Так что нет.
Ответ №1:
Я думаю, вам следует использовать await
ключевое слово при вызове чего-либо. Вот пример, взятый из https://dart.dev/codelabs/async-await :
Future<String> createOrderMessage() async {
var order = await fetchUserOrder();
return 'Your order is: $order';
}
Future<String> fetchUserOrder() =>
// Imagine that this function is
// more complex and slow.
Future.delayed(
Duration(seconds: 2),
() => 'Large Latte',
);
Future<void> main() async {
print('Fetching user order...');
print(await createOrderMessage());
}
Он может использоваться только в async
функциях!