Angular HttpClient订阅问题

时间:2018-07-24 17:52:06

标签: angular angular-httpclient

我当前正在尝试在http请求之后返回Angular中的Observable。以下是方法代码:

  public   fetchOptions(options ?: any): Observable<any> {

  let response: Subject<Response> = new Subject<Response>();
    if (!this._config) {
      return null;

    }
    let requestOptions: any= null;
    // fetch Token from oag and add the Authorisation Header
    this.fetchToken().subscribe((token: IOagAccessTokenResponse) => {
        let finalOptions: any= {};
        if (options) {
            finalOptions = options;
        }

        if (!finalOptions.headers) {
            finalOptions.headers = new HttpHeaders();
        }
        // first remove Header and after this add the new header
      finalOptions.headers = finalOptions.headers.delete('Authorization');

     requestOptions = finalOptions;

    }), (e): any=> {

  };

  response.next(requestOptions);

}

这里是对此函数的订阅调用:

this.fetchOptions(options).subscribe((requestOptions: any) => {
    .....
}

我在Internet Explorer和Chrome中不断收到以下错误:

错误TypeError:无法读取未定义的属性“订阅”

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

该操作无效,因为fetchOptions方法未返回Observable。实际上,它不返回任何内容。

当您从fetchOptions方法返回一个Observable方法时,您将可以对其进行订阅。