【发布时间】:2018-08-02 00:42:15
【问题描述】:
我不确定我是否理解不正确,但这是我的代码。我试图让StreamTransformer 对流采取行动,但值仍然在另一端未触及。
注意:我添加了 .map() 函数,它什么都不做,只是为了确保我的问题不是缺少 map 函数。我把它留在这里以防万一。
import 'dart:async';
void main() {
int count = 0;
var counterController = new StreamController();
counterController.stream.listen((value) => print(value));
void increment() {
counterController.add(count++);
}
final transformToString =
new StreamTransformer.fromHandlers(handleData: (number, sink) {
if (number.runtimeType == int) {
sink.add("The counter is at $number!");
} else {
sink.addError("$number is not an int!");
}
});
counterController.stream.map((input) => input).transform(transformToString);
for(int i=0; i < 10; i++){
increment();
}
}
【问题讨论】: