На самом деле в Dart, чтобы использовать await
в теле функции, нужно объявить всю функцию как async
:
import "dart:async";
void main() async {
var x = await funcTwo();
print(x);
}
funcTwo() async {
return 42;
}
Этот код не будет работать без маркировки main()
какasync
Error: Unexpected token 'await'.
Но, доктор говорит: «Выражения await
оценивают e
, а затем приостанавливает текущую функцию, пока результат не будет готов, то есть добудущее завершено "( Поддержка асинхронного языка Dart )
Итак, может быть, я что-то упускаю, но нет необходимости заставлять функцию быть асинхронной?Каково обоснование для того, чтобы сделать асинхронное объявление обязательным?