gpt4 book ai didi

dart - 取消与LineSplitter结合的stdin订阅

转载 作者:行者123 更新时间:2023-12-03 03:27:36 24 4
gpt4 key购买 nike

我将LineSplitter用作命令行界面,其中每一行都是一个命令:

import "dart:io";
import 'dart:convert';

void main() {
var sub;

sub = stdin.transform(UTF8.decoder).transform(new LineSplitter()).listen((l) {
if (l == "e") {
sub.cancel();
}
print('$l');
});
}

在取消订阅后,键入 e和换行符应退出应用程序。但这不会发生,相反,我必须在stdin中加入另一个换行符。问题似乎出在 LineSplitter上,也许它正在等待下一行完整的代码,是否有一种方法可以“撤消” /“取消链化”转换器,从而使应用程序退出?

调用 exit对我来说不是一个选项,因为它没有正确清理就立即退出。

我认为 this问题相关,但尚未解决。

最佳答案

这是Windows上Dart SDK中的io库的一个问题,该错误现在应该已修复(请参阅https://github.com/dart-lang/sdk/issues/22940)

关于dart - 取消与LineSplitter结合的stdin订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29176012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com