Dart 镖流';’s listen()不要叫onDone

Dart 镖流';’s listen()不要叫onDone,dart,dart-io,Dart,Dart Io,我有一个带有转换器的流,它将UTF8.decoder与LineSplitter相融合。它工作得很好,但从不调用onDone参数中指定的函数 导入'dart:async'; 导入“dart:io”; 导入“dart:convert”; void main(列出参数){ Stream=新文件(“input.txt”).openRead(); stream.transform(UTF8.decoder.fuse(constlinesplitter())) .听((行){ 标准写入(行); },onDo

我有一个带有转换器的流,它将
UTF8.decoder
LineSplitter
相融合。它工作得很好,但从不调用
onDone
参数中指定的函数

导入'dart:async';
导入“dart:io”;
导入“dart:convert”;
void main(列出参数){
Stream=新文件(“input.txt”).openRead();
stream.transform(UTF8.decoder.fuse(constlinesplitter()))
.听((行){
标准写入(行);
},onDone:(){
标准写入(“完成”);
}).asFuture().catchError(())=>打印());
}

你知道为什么它永远不会被调用吗?

我可以复制,但无法解释。我会等一天,看看有没有人有什么想法,然后提交一个bug/功能请求。@GünterZöchbauer查看mezoni的答案。