【问题标题】:Dart & Flutter: How to create a StreamController that has different Data Types for Input & OutputDart & Flutter:如何创建具有不同输入和输出数据类型的 StreamController
【发布时间】:2022-10-02 08:35:38
【问题描述】:

我想创建一个StreamController 接受来自特定的输入数据类型,例如double 并提供另一个数据类型作为输出,例如String?

例子:

30.0 ---> [STREAM CONTROLLER] ---> \"$30.00 USD\"

    标签: flutter dart asynchronous stream


    【解决方案1】:

    要创建此逻辑,您可以将StreamControllers 链接在一起以获得如下内容:

    Input Data ---> [FIRST CONTROLLER] ---> ⚙ ---> [SECOND CONTROLLER] ---> Output Data
    

    这是?的食谱:

    1. 创建两个StreamControllers,第一个来自type输入数据第二个来自type输出数据.
    2. 通过监听链接控制器第一,映射数据,然后将其添加到第二个.
    3. 使用第一控制器sink 添加数据和第二控制器stream 获取数据。

      代码示例??‍?:(笔记:此代码在问题示例中实现相同的逻辑)

      import 'dart:async';
      
      void main() {
        // Streams Setup:
        final priceInputController = StreamController<double>();
        final priceOutputController = StreamController<String>();
        
        priceInputController.stream.listen((price){
          final priceAsString = '\$${price.toStringAsFixed(2)} USD';
          priceOutputController.sink.add(priceAsString);
        });
        
        priceOutputController.stream.listen((price){
          print(price);
        });
        
        // Usage:
        priceInputController.add(30);  
      }
      
      

      输出:

      $30.00 USD
      

      就是这样???

      笔记:您可以从这个link 直接在DartPad 找到并运行这个代码示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 2016-06-23
      • 1970-01-01
      • 2021-12-08
      • 2021-09-28
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      相关资源
      最近更新 更多