2016-09-29 13 views
0

各GETの前にいくつかのHTTPリクエストを注入する必要があります。 HTTPサービスではObservableが必要ですが、返す前にPromiseを終了する必要があります。それは次のように見えます:HTTPリクエストでの観測可能な連鎖

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を呼び出すことはできません。

解決策の1つは、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); 
     }); 
    } 
} 
関連する問題