为什么异步方法需要 return 一个未来?
Why does an async method needs to return a future?
我正在努力思考 this。我一定是理解错了。
示例:
Future A() { ..}
Future B() async{
await A();
print "123";
}
为什么 B
需要 return 一个 Future
?
await
不会使 B()
同步吗?即,它等待 A
完全完成,然后执行 print
语句。
那么,B
到return一个Future
的必要性是什么?
async
和 await
不要 使异步执行同步。没有办法做到这一点。
async
和 await
所做的就是让异步代码看起来更像同步代码。它只是语法糖。使用 async
和 await
可以完成的所有事情在没有它的情况下也可以完成。
代替深度嵌套的[=16=]不同的语句,for循环,try
,catch
,finally
可以使用,这使得代码更容易编写,阅读和推理关于。
在 Dart 语言中,async
修饰符允许在异步函数中使用扩展语法(当然,异步函数在大多数情况下不能 return 在未完成之前立即产生结果,它们return 未来结果的包装,在 Dart 中调用 Future
)。
使用扩展语法意味着可以用与编写同步操作相同的方式编写异步操作。
为了能够在单个函数中同时使用同步和异步操作,扩展语法允许使用运算符 await
.
使用运算符 await
时,异步操作看起来像是同步操作,因为运算符 await
执行的工作可以称为 asynchronously wait until the operation will not completed
.
我正在努力思考 this。我一定是理解错了。
示例:
Future A() { ..}
Future B() async{
await A();
print "123";
}
为什么 B
需要 return 一个 Future
?
await
不会使 B()
同步吗?即,它等待 A
完全完成,然后执行 print
语句。
那么,B
到return一个Future
的必要性是什么?
async
和 await
不要 使异步执行同步。没有办法做到这一点。
async
和 await
所做的就是让异步代码看起来更像同步代码。它只是语法糖。使用 async
和 await
可以完成的所有事情在没有它的情况下也可以完成。
代替深度嵌套的[=16=]不同的语句,for循环,try
,catch
,finally
可以使用,这使得代码更容易编写,阅读和推理关于。
在 Dart 语言中,async
修饰符允许在异步函数中使用扩展语法(当然,异步函数在大多数情况下不能 return 在未完成之前立即产生结果,它们return 未来结果的包装,在 Dart 中调用 Future
)。
使用扩展语法意味着可以用与编写同步操作相同的方式编写异步操作。
为了能够在单个函数中同时使用同步和异步操作,扩展语法允许使用运算符 await
.
使用运算符 await
时,异步操作看起来像是同步操作,因为运算符 await
执行的工作可以称为 asynchronously wait until the operation will not completed
.