Angular,RxJs-动态新的可观察到的用户反应作为解决方案

时间:2019-05-13 17:30:03

标签: angular rxjs

我们正在创建一个Messenger模块,该模块需要基于RxJs,并且需要根据用户对另一个组件的反应发出一个值。

我已经尝试过of(),并传递了现有的BehaviorSubject,但是没有一个能像预期的那样工作。功能应该像一个简单的承诺,用户可以解决。

一些原始代码可以说明这个想法:

MessageService {
  message = new BehaviorSubject(undefined);

  addMessage(message) {
    this.message.next(message);
    return new Subject();
  }

  userClick(boolean) {
  // clicked on Ok or Cancel
  // We want to send that value to the subscription on addMessage
  }

}

AnotherService {
  ....
  this.messageService.addMessage('Are you sure?')
      .subscribe(boolean => console.log(boolean));
  ....
}

因此,当用户在MessageService中处理的内容中单击“确定”或“取消”按钮时,AnotherService的订阅应会收到答案。

1 个答案:

答案 0 :(得分:1)

要执行此操作,您需要在某个地方创建一个Observable以及要通过true/false的方法。

这可以通过

完成
requestUser(): Observable<boolean> {
// do some actions

return new Observable(observer => {
  // react here on what user does
  observer.next(true);
})
}

导致订户在subscribe上获得真/假的原因。