【发布时间】:2015-05-22 17:25:30
【问题描述】:
我正在 Dart 中启动一个进程,将其标准输出流附加到标准输出,以便可以将结果打印到终端,如下所示:
Process.start(executable, ['list','of','args']).then((proc) {
stdout.addStream(proc.stdout);
stderr.addStream(proc.stderr);
return proc.exitCode;
});
但是,一旦完成,我想启动一个新进程并重新开始(其中的函数将被调用多次)。有时,我会收到错误消息:
Uncaught Error: Bad State: StreamSink is already bound to a stream
查看 dart 文档,看起来我可能需要做一些类似 stdout.close() 或 stdout.flush() 的事情,但这些似乎并不能解决问题。处理将多个流按顺序绑定到流接收器的正确方法是什么?
【问题讨论】:
-
我已经提交了dartbug.com/23522,因为在 Process.start 的文档中给出了类似的代码作为示例。
标签: asynchronous stream dart stdout