Angular 角度,RxJs-动态新观测,用户反应为分辨率
我们正在创建一个messenger模块,它需要基于RxJs,并且需要根据用户对另一个组件的反应发出一个值 我尝试使用of(),传递现有的BehaviorSubject,但没有一个按预期工作。该功能应该像一个简单的承诺,用户可以解决什么 一些原型代码显示了这个想法:Angular 角度,RxJs-动态新观测,用户反应为分辨率,angular,rxjs,Angular,Rxjs,我们正在创建一个messenger模块,它需要基于RxJs,并且需要根据用户对另一个组件的反应发出一个值 我尝试使用of(),传递现有的BehaviorSubject,但没有一个按预期工作。该功能应该像一个简单的承诺,用户可以解决什么 一些原型代码显示了这个想法: MessageService { message = new BehaviorSubject(undefined); addMessage(message) { this.message.next(message);
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中处理的内容中的“确定”或“取消”按钮时,另一个服务的订阅应该会收到答案。要执行此操作,您需要在某个地方创建一个可观察的对象,以及一个将传递
真/假的方法
这可以通过以下方式实现:
requestUser(): Observable<boolean> {
// do some actions
return new Observable(observer => {
// react here on what user does
observer.next(true);
})
}
requestUser():可观察{
//做一些动作
返回新的可观察对象(观察者=>{
//在这里对用户的行为做出反应
观察者:下一个(正确);
})
}
什么会导致订阅者在subscribe
上获得true/false您的问题尚不清楚。但我看到有数据在两个类之间传输,所以使用第三个类来保存状态可能是有意义的。