如何在Dart中创建Stream? [英] How do you create a Stream in Dart?

查看:210
本文介绍了如何在Dart中创建Stream?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我基本上知道如何使用它们;

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆