使用观察者观察返回

时间:2017-12-14 14:02:50

标签: angular asynchronous observable angular2-services

我试图在Angular 2中使用observables。 这是我的代码:

public getJson<T>(uri: string): Observable<T> { 
    return Observable.create(observer => {
        this.refreshToken()
            .subscribe(token => {
                observer.next(
                    super.get<T>(this.getUrl(uri), <HttpOptions>this.getOptions())
                );
                observer.complete();
            });
    });  
    //return super.get<T>(this.getUrl(uri), <HttpOptions>this.getOptions());
}

基本上我需要做的是调用refreshToken()函数,然后调用super.get ......就像提供的代码一样。 所有调用都运行良好,但只有一个问题,它以错误的格式返回数据,如下所示:UseInf {&#34; _isScalar&#34;:false,&#34; source&#34;:{} ... ......} 所以我的问题是,如何执行此操作:首先调用refreshToken()函数,然后调用类似这样的&gt;

返回super.get(this.getUrl(uri),this.getOptions()); / super是HttpClient /

非常感谢您的回复!

EDIT1 我也试过这样的事情:

public getJson<T>(uri: string): Observable<T> { 
    return this.refreshToken().map(response => {
        return super.get<T>(this.getUrl(uri), <HttpOptions>this.getOptions()); 
    })

}

但它给了我错误:键入&#39; Observable<Observable<T>>&#39;不能分配到&#39; Observable<T>

0 个答案:

没有答案