Flutter 为什么异步关键字在Dart中没有WAIT关键字?

Flutter 为什么异步关键字在Dart中没有WAIT关键字?,flutter,dart,Flutter,Dart,我看到很多人的代码在函数中使用async关键字,而函数体中没有wait关键字。甚至一些官方的颤振示例代码也可以这样做。我不知道为什么。重点是什么?这是一个错误还是有目的 通常,我只需从这些代码中删除async关键字,一切都会正常运行。一些dart专家能否澄清,如果某个函数有async关键字,但没有wait关键字,那么该函数是否有其用途?或者这只是他们的错误?async有时用于简化代码 以下是一些例子: Future<int> f1() async => 1; Future<

我看到很多人的代码在函数中使用
async
关键字,而函数体中没有
wait
关键字。甚至一些官方的颤振示例代码也可以这样做。我不知道为什么。重点是什么?这是一个错误还是有目的


通常,我只需从这些代码中删除
async
关键字,一切都会正常运行。一些dart专家能否澄清,如果某个函数有
async
关键字,但没有
wait
关键字,那么该函数是否有其用途?或者这只是他们的错误?

async
有时用于简化代码

以下是一些例子:

Future<int> f1() async => 1;
Future<int> f1() => Future.value(1);

Future<void> f2() async {
  throw Error();
}
Future<void> f2() {
  return Future.error(Error());
}
Future f1()异步=>1;
Future f1()=>Future.value(1);
Future f2()异步{
抛出错误();
}
未来f2(){
返回Future.error(error());
}
根据,
async
同步执行,直到找到
wait
关键字:

注意:尽管异步函数可能执行耗时的操作,但它不会等待这些操作。相反,异步函数只在遇到其第一个等待表达式()之前执行。然后它返回一个未来对象,仅在等待表达式完成后才恢复执行


有几件事。如果实现了返回未来的方法,则可能会强制返回未来。您可以使用
f1
作为需要
Future Function()
(例如
void myAwesomeFunction(Future Function()provider)
)的值。非常感谢您的解释。我终于明白为什么有些人会这样做。我发现很多代码可以安全地删除async关键字。我想他们只是放在那里以防万一,或者忘了把它拿走。例如,我看到一些人做了
Future f()async=>anotherFunction()
,而
anotherFunction()
确实返回了未来。但是在f()函数中仍然有无用的
async
。我明白他们为什么一开始就尝试添加异步。(顺便说一句,对不起,我在你回复前几秒钟删除了我的第一条评论,因为我当时理解了。如果我知道你会回复,我会保留它。)