添加和侦听流时正在传递什么,如何使用?

时间:2019-02-14 08:07:13

标签: dart stream flutter

我一直很难处理流。我读了许多文章,最后写了这段代码。我了解理论上流是如何工作的,但是代码对我而言意义不大。它正在工作,但我不知道到底在发生什么。

这就是我定义流控制器的方式-

StreamController streamController = StreamController.broadcast();

这就是我在initState()中添加的内容-

streamController.stream.listen((data) {
  //call my backend api
});

基于一些动作,我称它为

streamController.add(someData);

我听不明白正在传递什么。我没有在任何地方定义data。我不能将其保留为空或为空。在哪里使用?

同时添加时,我要传递什么数据? 如果在调用后端api时需要一些数据。如何通过? 我是否总是只需要听initState()中的流?我无法在其他任何地方添加它。为什么会这样?

1 个答案:

答案 0 :(得分:1)

data是每次流发出事件时传递给您的有效负载。

(data) {
  //call my backend api
}

是您传递给

的函数
streamController.stream.listen(...);

,并且每次流接收事件时都会调用此函数。

只需使用

(data) {
  print('received data: $data);
}

应该清楚。