转换 Stream。
当使用 Stream.transform 方法并传入 StreamTransformer 时,Stream 将调用提供的转换器的 bind 方法。然后,从 Stream.transform 方法返回结果 Stream。
从概念上讲,转换器只是一个将 Stream 转换为 Stream 的函数,被封装在一个类中。
编写可多次使用的转换器是良好的实践。
Stream 的其他所有转换方法,如 Stream.map、Stream.where 或 Stream.expand,都可以使用 Stream.transform 实现。因此,StreamTransformer 非常强大,但通常使用起来也稍微复杂一些。
StreamTransformer.fromHandlers 构造函数允许传递单独的回调来响应事件、错误和流的结束。构造函数 StreamTransformer.fromBind 创建一个 StreamTransformer
,其 bind 方法通过调用构造函数中传入的函数来实现。
构造函数
-
StreamTransformer(StreamSubscription<
T> onListen(Stream<S> , bool cancelOnError)) - 根据给定的
onListen
回调创建一个 StreamTransformer。constfactory -
StreamTransformer.fromBind(Stream<
T> bind(Stream<S> )) - 根据一个
bind
回调创建一个 StreamTransformer。factory -
StreamTransformer.fromHandlers({void handleData(S data, EventSink<
T> sink)?, void handleError(Object error, StackTrace stackTrace, EventSink<T> sink)?, void handleDone(EventSink<T> sink)?}) - 创建一个将事件委托给给定函数的 StreamTransformer。factory
属性
- hashCode → int
- 此对象的哈希码。无设置器继承
- runtimeType → Type
- 对象运行时类型的表示。无设置器继承
方法
-
bind(
Stream< ) → Stream<S> streamT> - 转换提供的
stream
。 -
cast<
RS, RT> () → StreamTransformer< RS, RT> - 提供此流转换器的
StreamTransformer<RS, RT>
视图。 -
noSuchMethod(
Invocation invocation ) → dynamic - 当访问不存在的方法或属性时调用。继承
-
toString(
) → String - 此对象的字符串表示。继承
运算符
-
operator ==(
Object other) → bool - 等号运算符。继承
静态方法
-
castFrom<
SS, ST, TS, TT> (StreamTransformer< ) → StreamTransformer<SS, ST> sourceTS, TT> - 将
source
适配为StreamTransformer<TS, TT>
。