如何在Dart中创建Stream? [英] How do you create a Stream in Dart?
问题描述
我基本上知道如何使用它们;
I basically know how to use them; for instance listening to the onClick Stream of an Element.
但是,如何设置自己的Streams?
But, how do you set up your own Streams?
推荐答案
简单示例
这是一个完整的工作示例:
Simple example
Here's a complete working example:
import 'dart:async';
import 'dart:io';
class Application {
Stream onExit;
Application() {
// Create a stream controller and assign its stream to "onExit".
var controller = new StreamController();
onExit = controller.stream;
// Create some class that uses our stream.
new UserOfStream(this);
// Whenever we exit the application, notify everyone about it first.
controller.add('we are shutting down!');
exit(0);
}
}
class UserOfStream {
UserOfStream(app) {
app.onExit.listen((String message) => print(message));
}
}
main() => new Application();
你也可以做很酷的事情,比如检查是否有 hasListener
,或者您可以发送错误。请务必查看 StreamController 上的API文档code>
。
You can also do cool things like check if there are subscribers with controller.hasListener
or you can signal an error. Be sure to check the API documentation on StreamController
.
您可以使用新的StreamController.broadcast()
这里有一个创建流的简单方法pasters):
Here's a simple way to create a stream (great snippet for copy-pasters):
class Something {
StreamController _onExitController = new StreamController.broadcast();
Stream get onExit => _onExitController.stream;
}
然后类可以访问 _onExitController
以控制流(例如 .add()
)。
Then the class can just access _onExitController
to control the stream (to for example .add()
).
这篇关于如何在Dart中创建Stream?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!