gpt4 book ai didi

dart - 如何在 Dart 中创建流?

转载 作者:行者123 更新时间:2023-12-03 00:28:57 25 4
gpt4 key购买 nike

我基本上知道如何使用它们;例如监听元素的 onClick 流。

但是,如何设置自己的 Stream?

最佳答案

简单示例

这是一个完整的工作示例:

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();

您还可以做一些很酷的事情,例如使用 controller.hasListener 检查是否有订阅者,或者您可以 signal an error 。请务必查看 StreamController 上的 API 文档.

您可以使用new StreamController.broadcast()来允许多个监听器。

用于复制粘贴

这是创建流的简单方法(复制粘贴者的绝佳片段):

class Something {
StreamController _onExitController = new StreamController.broadcast();
Stream get onExit => _onExitController.stream;
}

然后该类只需访问 _onExitController 即可控制流(例如 .add())。

关于dart - 如何在 Dart 中创建流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14536437/

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