StreamBuilder的快照未提供Flutter中Stream发出的所有数据

时间:2019-03-24 09:41:50

标签: dart flutter rxdart

我正在尝试下面的代码在Text小部件上打印1、2和3。但是问题在于它仅打印1和3。但是concat应该通过属性顺序打印所有数据,对吗?

Stream<String> get concatStream => Observable.concat(
      [new Observable.just(1.toString()),
      new Observable.timer(2.toString(), new Duration(seconds: 1)),
      new Observable.just(3.toString())]);

如果我使用以下配置,则会出现一个奇怪的部分。它按顺序打印所有三个值。可能是什么问题?

Stream<String> get concatStream => Observable.concat([
        new Observable.just(1.toString()),
        new Observable.timer(2.toString(), new Duration(seconds: 2)),
        new Observable.timer(3.toString(),new Duration(seconds: 1))
      ]);

我的StreamBuilder的代码:

return StreamBuilder(
        stream: getStream(),
        builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
          if (snapshot.hasData) {
            print(snapshot.data);
            return Text(
              snapshot.data,
              textAlign: TextAlign.center,
              style: TextStyle(fontWeight: FontWeight.w300),
            );
          } else if (snapshot.hasError) {
            return Text("Error");
          } else {
            return CircularProgressIndicator();
          }
        });

0 个答案:

没有答案