我需要在每次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)
});
}
}
我将不胜感激任何解决方案。
答案 0 :(得分: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);
});
}
}