- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试构建一个自定义 StreamTransformer 类,但是许多示例似乎已经过时,并且文档中找到的示例不是(某些类型语言可能会考虑的)作为一个类(发现此处:https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:async.StreamTransformer)。这看起来不像是一种非常类似于 Dart 的方法,而是更像是一种类似于 Javascript 的方法(我使用 Dart 来避免这种方式)。
许多在线资源都说这就是创建 StreamTransformer 的方式,但是在扩展它时会出现错误。
class exampleStreamTransformer extends StreamTransformer
{
//... (This won't work)
}
“实现”似乎是可行的方法,同时实现所需的绑定(bind)功能:
class exampleStreamTransformer implements StreamTransformer
{
Stream bind(Stream stream)
{
//... (Go on to return new stream, etc)
}
}
我似乎找不到这种方式的任何示例,但我自己把一些东西放在一起(这在我的 IDE 中被接受,但在运行时不被接受,当它尝试使用暂停时,我收到一个空对象错误 setter/getter ):
class exampleStreamTransformer implements StreamTransformer
{
StreamController<String> _controller;
StreamSubscription<String> _subscription;
Stream bind(Stream stream)
{
_controller = new StreamController<String>(
onListen: ()
{
_subscription = stream.listen((data)
{
// Transform the data.
_controller.add(data);
},
onError: _controller.addError,
onDone: _controller.close,
cancelOnError: true); // Unsure how I'd pass this in?????
},
onPause: _subscription.pause,
onResume: _subscription.resume,
onCancel: _subscription.cancel,
sync: true
);
return _controller.stream;
}
}
希望以这种方式实现它,就像以“类型化”方式生成类(class)一样,非常感谢任何帮助,谢谢。
最佳答案
为什么不使用StreamTransformer.fromHandler()
:
import 'dart:async';
void handleData(data, EventSink sink) {
sink.add(data*2);
}
void main() {
StreamTransformer doubleTransformer = new StreamTransformer.fromHandlers(handleData: handleData);
StreamController controller = new StreamController();
controller.stream.transform(doubleTransformer).listen((data) {
print('data: $data');
});
controller.add(1);
controller.add(2);
controller.add(3);
}
输出:
data: 2
data: 4
data: 6
关于stream - 如何在 Dart 中创建 StreamTransformer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27765878/
我正在尝试使用 Flutter 和 Firebase 构建一个聊天应用程序,我从 Github 获取了以下代码并将其用于我的项目。在早期版本的 Flutter 上,它可以工作,在 2.0 上它显示以下
This question already has answers here: The argument type 'Map Function()' can't be assigned to the
尝试构建一个自定义 StreamTransformer 类,但是许多示例似乎已经过时,并且文档中找到的示例不是(某些类型语言可能会考虑的)作为一个类(发现此处:https://api.dartlang
我已经实现了流转换器。请注意,这只是一个练习(为了学习 Dart)。此转换器将整数转换为字符串。我给出下面的代码,你也可以在GitHub上找到它. // Conceptually, a transfo
当我尝试从 StreamTransform 获取一些数据时遇到一些问题 我不明白什么是正确的数据类型 未捕获的异常:类型错误:“_StreamHandlerTransformer”的实例:“_Stre
我是一名优秀的程序员,十分优秀!