什么是达特流

时间:2018-04-17 05:40:03

标签: dart flutter

async和stream之间的区别是什么,我们应该在Dart语言中使用流而不是async。正如官方文档流中所描述的那样,代表了数据序列。

1 个答案:

答案 0 :(得分:4)

异步执行正在注册一些其他计算完成时调用的回调。 这可以是像file.readAsString()这样的操作系统,也可以是客户端继续执行UI呈现(或其他内容)的服务器的HTTP请求,当服务器的响应到达时,会调用代码来处理响应

在Dart中,您通常会从此异步调用中返回Future,您可以使用.then(/* pass callback here */)注册回调。

asyncawait是语法糖,因此您无需使用.then(...).then(...)来混淆代码。

流可以是同步或异步。 可以看到一个流像数组一样可迭代,但是项目被推送而不是拉动。

异步执行在完成后完成Future,就是这样。 流可以发出有限或无限数量的项目(事件)。 例如,如果您在浏览器中订阅(监听)mousemove,则只要鼠标移动,您就会获得鼠标移动事件,直到您取消订阅。使用listen(...),您可以注册为每个此类事件调用的回调。