如何在 angular 4 中 return 一个 Observable?
How to return an Observable in angular 4?
我在 authProvider
供应商中有这个方法 class:
getUser() {
return this.afAuth.authState.subscribe(user => {
return user;
});
}
我想以不同的方式订阅它 class,例如:
this.authProvider.getUser().subscribe(user => console.log(user));
关于如何在 getUser()
方法中 return 一个 Observable
有什么想法吗?
不要在 getUser
函数内订阅。只是 return 可观察的。
getUser() {
return this.afAuth.authState
}
您的 authState
已经是 Observable。只需 return 您的 authState
并在另一个功能中订阅。在任何其他工作的函数中,您可以使用 RxJS#map 函数。
getUser() : Observable {
return this.afAuth.authState.map(...);
}
....
login() {
getUser().subscribe(user => {
return user;
});
}
您需要将 return 类型设置为 observable
getUser(): Observable<Type> {
return this.afAuth.authState;
});
}
您可以直接 return 函数并在另一个 class 中订阅它。
getUser() {
return this.afAuth.authState();
}
您可以将可观察对象视为通过订阅调用的函数。
this.authProvider.getUser().subscribe(user => console.log(user));
你可以这样做。然后在您的组件中,即调用此函数的组件中,您可以订阅此可观察对象。
getUser(): Observable<any> {
return Observable.create( (observer: Observer<string>) => {
this.afAuth.authState.subscribe(user => {
observer.next(user);
}, (err) => observer.error("error"));
});
}
阿什莉
我在 authProvider
供应商中有这个方法 class:
getUser() {
return this.afAuth.authState.subscribe(user => {
return user;
});
}
我想以不同的方式订阅它 class,例如:
this.authProvider.getUser().subscribe(user => console.log(user));
关于如何在 getUser()
方法中 return 一个 Observable
有什么想法吗?
不要在 getUser
函数内订阅。只是 return 可观察的。
getUser() {
return this.afAuth.authState
}
您的 authState
已经是 Observable。只需 return 您的 authState
并在另一个功能中订阅。在任何其他工作的函数中,您可以使用 RxJS#map 函数。
getUser() : Observable {
return this.afAuth.authState.map(...);
}
....
login() {
getUser().subscribe(user => {
return user;
});
}
您需要将 return 类型设置为 observable
getUser(): Observable<Type> {
return this.afAuth.authState;
});
}
您可以直接 return 函数并在另一个 class 中订阅它。
getUser() {
return this.afAuth.authState();
}
您可以将可观察对象视为通过订阅调用的函数。
this.authProvider.getUser().subscribe(user => console.log(user));
你可以这样做。然后在您的组件中,即调用此函数的组件中,您可以订阅此可观察对象。
getUser(): Observable<any> {
return Observable.create( (observer: Observer<string>) => {
this.afAuth.authState.subscribe(user => {
observer.next(user);
}, (err) => observer.error("error"));
});
}
阿什莉