首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ReplaySubject创建RxCpp?

如何使用ReplaySubject创建RxCpp?
EN

Stack Overflow用户
提问于 2019-07-15 11:32:13
回答 1查看 443关注 0票数 0

在我的c++项目中,我需要创建具有初始值的主题,这个值可以更新。在每次订阅/更新时,订阅者可能会触发然后进行数据处理.在以前的RxJS项目中,这种行为是用ReplaySubject(1)处理的。

我不能用c++ rxcpp lib复制这个。

我已经查找过文档、片段、教程,但都没有成功。

预期伪码(打字本):

代码语言:javascript
复制
private dataSub: ReplaySubject<Data> = new ReplaySubject<Data>(1);

private init = false;

// public Observable, immediatly share last published value
get currentData$(): Observable<Data> {

    if (!this.init) {
      return this.initData().pipe(switchMap(
        () => this.dataSub.asObservable()
      ));
    }
    return this.dataSub.asObservable();
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-30 08:54:36

我认为您正在寻找rxcpp::subjects::replay。请试试这个:

代码语言:javascript
复制
    auto coordination = rxcpp::observe_on_new_thread();
    rxcpp::subjects::replay<int, decltype(coordination)> test(1, coordination);

    // to emit data
    test.get_observer().on_next(1);
    test.get_observer().on_next(2);
    test.get_observer().on_next(3);

    // to subscribe
    test.get_observable().subscribe([](auto && v)
        printf("%d\n", v); // this will print '3'
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57038812

复制
相关文章

相似问题

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