我在Angular 2中有一个组件,它调用服务并允许某人登录Facebook。它的工作原理如下:
在我的组件中,我使用this.facebook.login()
在我的服务login()
内,我让某人使用FB.login(res => { //do stuff with res });
这会弹出Facebook身份验证窗口,您可以在其中输入用户名和密码。
这很有效。有人登录他们的Facebook帐户后,res
拥有我需要的Facebook数据。但我真正想做的是将数据返回给我的组件,这样我就可以用它来做。如何在用Facebook登录后返回此数据?我曾尝试使用Observables,但我一直遇到错误。
答案 0 :(得分:1)
如果没有看到完整的代码,我无法确切地说出来,但是你走的是正确的道路。在您的服务中,您进行FB登录,您需要返回一个observable,以便您可以订阅。
public Login(): Observable<any> {
return Observable.create((observer: NextObserver<any>) => {
// Do the FB login and wait for the data to come back
FB.login(response => {
// Return the data as an observable
observer.next(<any>response);
observer.complete();
});
});
}