dart - 如何使用 rxdart 获取 Stream<String> 中的最后一个值?

标签 dart stream flutter rxdart

我有一个包含字符串值的流,我想获取该字符串中的最后一个值。最好的方法是什么?

  Stream<String> get searchTextStream {
    return _searchController.stream.transform(
      StreamTransformer<String, String>.fromHandlers(
        handleData: (value, sink) {
          if (value.isEmpty || value.length < 4) {
            sink.addError('please enter some text..');
          } else {
            sink.add(value);
          }
        },
      ),
    );
  }

最佳答案

从这里获取 rxDart 包 https://pub.dartlang.org/packages/rxdart .

import 'package:rxdart/rxdart.dart'; // 1. Import rxDart package.
final _searchController = BehaviorSubject<String>();  // 2. Initiate _searchController as BehaviorSubject in stead of StreamController.

String _lastValue = _searchController.value; // 3. Get the last value in the Stream.

BehaviorSubject 是一个对象 rxDart 包。 它像 StreamController 一样工作,默认情况下 broadcast() 是打开的,BehaviorSubject 比 StreamController 有更多的功能。

关于dart - 如何使用 rxdart 获取 Stream<String> 中的最后一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54492000/

相关文章:

firebase - Flutter:当 TextView 聚焦时,屏幕键盘不打开

flutter - 如果计数值太大,该如何格式化?

flutter - 如何使用GetX存储保存和写入数据?

api - Flutter从API获取数据以构建方法

c - 标准流管道测试失败

c# - 检查响应状态后将 RestSharp 响应作为流处理?

node.js - 如何通过 NodeJS 在文件中一位一位地写入和读取?

flutter - 如何使用三元运算符(?:)或空合并运算符(??)编写if-else条件?

dart - Flutter中的NumberPicker小部件?

flutter - CERTIFICATE_VERIFY_FAILED flutter