为什么异步方法需要返回未来?

Ete*_*ode 7 dart

我正在努力解决这个问题。我必须理解错误。

例子:

Future A() { ..}

Future B() async{
   await A();
   print "123";
}
Run Code Online (Sandbox Code Playgroud)

为什么B需要返回一个Future?不awaitB()同步?即,它等待A完全完成然后执行print语句。

那么,B返回 a的必要性是Future什么?

Gün*_*uer 5

async并且await 不要使异步执行同步。没有办法做到这一点。

所有的asyncawait做的是使异步代码看起来更像同步码。它只是语法糖。一切,是可以做到的async,并await没有它也做到为好。

相反,深度嵌套的.then(...then(...then(...).catchError())).catchError(...)不同的语句,for循环,trycatchfinally可以使用,这使得代码更容易编写,阅读和推理。