gpt4 book ai didi

dart - Dart 中的流是什么

转载 作者:IT王子 更新时间:2023-10-29 06:50:10 26 4
gpt4 key购买 nike

async 和 streams 有什么区别,在 Dart 语言中我们应该使用 streams 而不是 async。正如官方文档中描述的那样,stream 表示数据的顺序。

最佳答案

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

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

asyncawait 是语法糖,所以您不需要用 .then(...).then(... )

stream 可以是同步的也可以是异步的,但这里的异步与上面解释的 async 不同。

流在某些方面类似于 Future,但如果发出多个事件,则可以多次调用回调,直到发送方或接收方关闭流。

异步执行完成一次Future,仅此而已。

流也可以看作像数组一样可迭代,但其中的项目是推送而不是拉取。

一个主要区别还在于,有许多操作符可用于流映射流、 fork 和加入多个流等等。许多这些运算符让人想起可用于数组等集合的方法,因为如前所述,流与可迭代对象有相似之处。

Streams 组合得很好,并且通过一组可用的运算符,stream 允许一种非常强大的声明式编程,其中可以通过几个流和运算符很好地组合来实现很多。

关于dart - Dart 中的流是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49870623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com