2016-09-29 63 views
0

我需要每個GET之前注入一些HTTP請求。 HTTP服務在返回時需要Observable,但在返回它之前,我需要等待Promise完成。它看起來像這樣:可觀測鏈接請求

export class HttpInterceptor extends Http { 

    ... 

    get(url: string, options?: RequestOptionsArgs): Observable<Response> { 
     somePromise() 
      .success(() => { 
       // now I can return Observable object - super.get(url, otpions) 
      }); 
    } 
} 

我將不勝感激任何解決方案。這裏

回答

1

問題是,由於你重寫get(url: string, options?: RequestOptionsArgs): Observable<Response>方法,你不能叫super之一。

其中一個解決方案是創建服務包裝Http並添加您的需求,然後像使用http一樣使用此服務。

例如:

@Injectable() 
export class FooService { 

    constructor(private http: Http) { 
    } 

    public get(url: string, options?: RequestOptionsArgs): Observable<Response> { 
     somePromise() 
      .success(() => { 
         return this.http.get(url, options); 
     }); 
    } 
}