[英]How to subscribe to a normal function as an Observable in Angular
我有一個返回對象的函數。
getUserState(): UserState {
return this.userState;
}
我將上述函數結果存儲在一個 observable 中,如下所示:
username$: Observable<UserState[]>;
constructor(private userService:UserStateService) {}
ngOnInit(): void {
this.username$ = this.userService.getUserState().map(data =>
{
this.username$ = data;
})
}
在這里我收到錯誤:
Property 'map' does not exist on type 'UserState'.
我做錯了什么?
首先返回一個實際的 observable:
getUserState(): Observable<UserState> {
return of(this.userState);
}
其次,您不需要地圖,也許您可以使用 share 或 shareReplay
ngOnInit(): void {
this.username$ = this.userService.getUserState().pipe(share());
}
第三,我想你在模板的某個地方使用它
{{ username$ | async | json }}
如果不只是這樣訂閱
ngOnInit(): void {
this.subscription = this.userService.getUserState().subscribe((state: UserState) => ...);
}
ngOndestroy(): void {
this.subscription.unsubscribe(); // clean up after yourself
}
嘗試導入“地圖”運算符。
導入'rxjs/add/operator/map'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.