在组件中:
singleEvent$: Observable<Event>;
在init中,我得到了observable
this.singleEvent$ = this._eventService.events$
.map(function (events) {
let eventObject = events.find(item => item.id === eventid);
let eventClass: Event = new Event(eventObject);
return eventClass;
});
如何获取当前值,例如event.name
?
5条答案
按热度按时间prdp8dxp1#
要从可观察对象获取数据,您需要订阅:
在模板中,您可以使用async pipe:
ijnw1ujt2#
为了补充君特·佐鲍尔的回答,如果你希望同步地获得你的可观察对象内部的价值,那么行为主体可能就是你正在寻找的。
BehaviorSubject是一个Observable,它总是有一个值,您可以调用
myBehaviorSubject.getValue()
或myBehaviorSubject.value
来同步检索BehaviorSubject当前持有的值。因为它本身也是一个可观察对象,所以您仍然可以订阅BehaviorSubject,以便异步地对它所持有的值的变化做出React(例如
myBehaviorSubject.subscribe(event => { this.event = event })
),并在组件的模板中使用异步管道(例如{{ myBehaviorSubject | async }}
)。下面是一些与给定示例相匹配的用法,用于从给定服务在组件中创建BehaviorSubject:
polkgigr3#
您可以使用
observable.pipe(take(1)).subscribe
来限制可观察性,使其仅获得一个值,而不再侦听更多值。fkaflof64#
加上@ZackDeRose在@Günter Zöchbauer回复上添加的内容
你必须设置一些条件来检查你是否想使用一个已有的对象
ddhy6vgd5#
我不想这么说,但这些都是错误的答案。如果它存在,你可以很容易地通过使用,
此._事件服务.事件$.源[“_值”]
并从对象中获取任何你想要的值。源代码已被弃用,但仍然有效。