首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新两个接收器中的任何一个时需要更新的Dart BLoC

更新两个接收器中的任何一个时需要更新的Dart BLoC
EN

Stack Overflow用户
提问于 2018-12-20 21:21:01
回答 1查看 168关注 0票数 0

我想要有一个BLoC类,当两个输入(接收器)中的一个/两个被更新时,流输出需要更新。

当Sink被更新/不同时,我如何连接Steam以触发?

代码语言:javascript
复制
import 'package:escapemodels/src/bloc/blocbase.dart';
import 'package:rxdart/rxdart.dart';

class MathAddBloc implements BlocBase {
  final Sink<int> x;
  final Sink<int> y;
  final Stream<int> addxy;

  factory MathAddBloc() {

    final x = PublishSubject<int>();
    final y = PublishSubject<int>();

  // This is the part that I am confused about - I can figure how to trigger when one Sink/Observable changes but not when either one is updated.
    final addxy = x
    .distinct()
    .switchMap<int>((int x) => (x + y.last))
    .startWith(0);

    return MathAddBloc._(x,y, addxy);
  }


  MathAddBloc._(this.x, this.y, this.addxy);

  void dispose() {
    x.close();
    y.close();
  }
}
EN

回答 1

Stack Overflow用户

发布于 2018-12-20 22:00:06

我认为您需要combineLatest2方法。

你可能也想看看this video,我发现它在做类似的事情时非常有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53869589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档