angular - Angular,RxJs - 动态新可观察,用户反应为解决方案
问题描述
我们正在创建一个信使模块,它需要基于 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 中处理的内容中的 Ok 或 Cancel 按钮时,AnotherService 上的订阅应该会收到答案。
解决方案
要执行此操作,您需要在某个地方创建一个 Observable 以及true/false
例如将通过的方法。
这可以通过
requestUser(): Observable<boolean> {
// do some actions
return new Observable(observer => {
// react here on what user does
observer.next(true);
})
}
什么会导致订阅者在subscribe
.
推荐阅读
- javascript - 无法在 Javascript 中访问对象/数组
- javascript - JS 函数未定义 Chrome 扩展 Popup.js
- ios - 如何设置 trailingMargin = Stack View.trailing
- chef-attributes - 如何更改策略组的属性而无需重新编译所有策略文件?
- java - 构造函数声明中的语法错误:预期为“{”
- html - 如何在 CSS Grid 布局中对齐三列?
- java - Spring 中的依赖注入在此语句中是如何工作的?
- php - Wordpress PHP背景填充改变?
- c - 如何从以空格分隔的字符串中读取整数
- asp.net-core - .net Core 3 Web API JWT 未经授权