async和stream之间的区别是什么,我们应该在Dart语言中使用流而不是async。正如官方文档流中所描述的那样,代表了数据序列。
答案 0 :(得分:4)
异步执行正在注册一些其他计算完成时调用的回调。
这可以是像file.readAsString()
这样的操作系统,也可以是客户端继续执行UI呈现(或其他内容)的服务器的HTTP请求,当服务器的响应到达时,会调用代码来处理响应
在Dart中,您通常会从此异步调用中返回Future
,您可以使用.then(/* pass callback here */)
注册回调。
async
和await
是语法糖,因此您无需使用.then(...).then(...)
来混淆代码。
流可以是同步或异步。 可以看到一个流像数组一样可迭代,但是项目被推送而不是拉动。
异步执行在完成后完成Future
,就是这样。
流可以发出有限或无限数量的项目(事件)。
例如,如果您在浏览器中订阅(监听)mousemove,则只要鼠标移动,您就会获得鼠标移动事件,直到您取消订阅。使用listen(...)
,您可以注册为每个此类事件调用的回调。