在协程中,Flow是一种可以顺序发出多个值的类型,而不是只返回单个值的挂起函数。例如,你可以使用Flow从数据库接收实时更新。数据流建立在协程之上,可以提供多个值。Flow在概念上是可以异步计算的数据流。发出的值必须是同一类型。例如,Flow是一个发出整数值的流。数据流与生成一组序列值的Iterator非常相似,但它使用挂起函数来异步生成和使用值。这意味着,例如,Flow可以安全地发出网络请求以生成下一个值,而不会阻塞主线程。数据流涉及三个实体:提供方会生成添加到数据流中的数据。得益于协程,数据流还可以异步生成数据。(可选)中介可以修改发送到数据流的值,或修正数据流本身。使用方则使用数据流中的