【发布时间】:2014-01-22 18:23:17
【问题描述】:
我有一个带有变压器的流,它将UTF8.decoder 融合到LineSplitter。它工作得很好,但从不调用onDone 参数中指定的函数。
import 'dart:async';
import 'dart:io';
import 'dart:convert';
void main(List<String> arguments) {
Stream<List<int>> stream = new File("input.txt").openRead();
stream.transform(UTF8.decoder.fuse(const LineSplitter()))
.listen((line) {
stdout.writeln(line);
}, onDone: () {
stdout.write("done");
}).asFuture().catchError((_) => print(_));
}
任何想法为什么它永远不会被调用?
【问题讨论】:
-
我能重现但无法解释。
-
我会等一天,看看是否有人有任何想法,然后提交错误/功能请求。
-
@GünterZöchbauer查看 mezoni 的答案。
-
asFuture () - 此方法用完成返回的未来的新回调覆盖现有的 onDone 和 onError 回调。 api.flutter.dev/flutter/dart-async/StreamSubscription/…