Rxjs 角度2可观测误差不是一个函数

Rxjs 角度2可观测误差不是一个函数,rxjs,observable,Rxjs,Observable,我试图创建一个可观察的,但我的代码失败了: get(url: string, options?: RequestOptionsArgs): Observable<Response> { this._log.debug('SecureHttpService#get: ' + url); let resultObservable = Observable.create((observer) => { this._log.debug('resultObs

我试图创建一个可观察的,但我的代码失败了:

get(url: string, options?: RequestOptionsArgs): Observable<Response> {
    this._log.debug('SecureHttpService#get: ' + url);

    let resultObservable = Observable.create((observer) => {
      this._log.debug('resultObservable');
      this.tryReActivateToken().then(
        (result) => {
          this._log.debug('resultObservable#then#result: ' + result);
          if (result === true) {
            let headers = new Headers();
            headers.append('Authorization', 'Bearer ' + this.access_token);
            headers.append('X-Requested-With', 'XMLHttpRequest');
            // headers.append('Accept', 'json');

            this._log.debug(this.access_token);
            let superGetObs = super.get(url, { headers: headers, withCredentials: true });

            superGetObs.subscribe(
              (next) => { observer.onNext(next); },
              (error) => { observer.onError(error); },
              () => { observer.onCompleted(); }
            );
          } else {
            observer.onError(new Error('Could not log you in automatically'));
          }
        }, (error) => { this._log.debug('resultObservable#then#error: ' + error); observer.onError(error); });
    });

    return resultObservable;
  }
get(url:string,options?:RequestOptionsArgs):可观察{
此.u log.debug('SecureHttpService#get:'+url);
让resultObservable=Observable.create((Observable)=>{
这个.u log.debug('resultObservable');
这个.tryReActivateToken()。然后(
(结果)=>{
这个.u log.debug('resultObservable#then#result:'+result);
如果(结果==真){
let headers=新的headers();
headers.append('Authorization'、'Bearer'+此.access\u令牌);
headers.append('X-request-With','XMLHttpRequest');
//append('Accept','json');
this.\u log.debug(this.access\u令牌);
让superGetObs=super.get(url,{headers:headers,withCredentials:true});
superGetObs.subscribe(
(下一个)=>{observer.onNext(下一个);},
(错误)=>{observer.onError(错误);},
()=>{observer.onCompleted();}
);
}否则{
onError(新错误('无法自动登录');
}
},(error)=>{this._log.debug('resultObservable#then#error:'+error);observer.onError(error);});
});
返回可维护的结果;
}
我得到的错误是:


我做错了什么

RxJs 5中的方法被重命名。在RxJs 5中,应该使用
error
而不是
onError

重命名方法。你应该使用
error
而不是
onError

我认为你写错了语法“onError”。正确的一个是“错误”。你可以试试这个,我希望它能解决你的问题

get(url: string, options?: RequestOptionsArgs): Observable<Response> {
    this._log.debug('SecureHttpService#get: ' + url);

    let resultObservable = Observable.create((observer) => {
      this._log.debug('resultObservable');
      this.tryReActivateToken().then(
        (result) => {
          this._log.debug('resultObservable#then#result: ' + result);
          if (result === true) {
            let headers = new Headers();
            headers.append('Authorization', 'Bearer ' + this.access_token);
            headers.append('X-Requested-With', 'XMLHttpRequest');
            // headers.append('Accept', 'json');

            this._log.debug(this.access_token);
            let superGetObs = super.get(url, { headers: headers, withCredentials: true });

            superGetObs.subscribe(
              (next) => { observer.onNext(next); },
              (error) => { observer.error(error); },
              () => { observer.onCompleted(); }
            );
          } else {
            observer.onError(new Error('Could not log you in automatically'));
          }
        }, (error) => { this._log.debug('resultObservable#then#error: ' + error); observer.onError(error); });
    });

    return resultObservable;
  }
get(url:string,options?:RequestOptionsArgs):可观察{
此.u log.debug('SecureHttpService#get:'+url);
让resultObservable=Observable.create((Observable)=>{
这个.u log.debug('resultObservable');
这个.tryReActivateToken()。然后(
(结果)=>{
这个.u log.debug('resultObservable#then#result:'+result);
如果(结果==真){
let headers=新的headers();
headers.append('Authorization'、'Bearer'+此.access\u令牌);
headers.append('X-request-With','XMLHttpRequest');
//append('Accept','json');
this.\u log.debug(this.access\u令牌);
让superGetObs=super.get(url,{headers:headers,withCredentials:true});
superGetObs.subscribe(
(下一个)=>{observer.onNext(下一个);},
(错误)=>{observer.error(error);},
()=>{observer.onCompleted();}
);
}否则{
onError(新错误('无法自动登录');
}
},(error)=>{this._log.debug('resultObservable#then#error:'+error);observer.onError(error);});
});
返回可维护的结果;
}

我认为您编写了错误的语法“onError”。正确的一个是“错误”。你可以试试这个,我希望它能解决你的问题

get(url: string, options?: RequestOptionsArgs): Observable<Response> {
    this._log.debug('SecureHttpService#get: ' + url);

    let resultObservable = Observable.create((observer) => {
      this._log.debug('resultObservable');
      this.tryReActivateToken().then(
        (result) => {
          this._log.debug('resultObservable#then#result: ' + result);
          if (result === true) {
            let headers = new Headers();
            headers.append('Authorization', 'Bearer ' + this.access_token);
            headers.append('X-Requested-With', 'XMLHttpRequest');
            // headers.append('Accept', 'json');

            this._log.debug(this.access_token);
            let superGetObs = super.get(url, { headers: headers, withCredentials: true });

            superGetObs.subscribe(
              (next) => { observer.onNext(next); },
              (error) => { observer.error(error); },
              () => { observer.onCompleted(); }
            );
          } else {
            observer.onError(new Error('Could not log you in automatically'));
          }
        }, (error) => { this._log.debug('resultObservable#then#error: ' + error); observer.onError(error); });
    });

    return resultObservable;
  }
get(url:string,options?:RequestOptionsArgs):可观察{
此.u log.debug('SecureHttpService#get:'+url);
让resultObservable=Observable.create((Observable)=>{
这个.u log.debug('resultObservable');
这个.tryReActivateToken()。然后(
(结果)=>{
这个.u log.debug('resultObservable#then#result:'+result);
如果(结果==真){
let headers=新的headers();
headers.append('Authorization'、'Bearer'+此.access\u令牌);
headers.append('X-request-With','XMLHttpRequest');
//append('Accept','json');
this.\u log.debug(this.access\u令牌);
让superGetObs=super.get(url,{headers:headers,withCredentials:true});
superGetObs.subscribe(
(下一个)=>{observer.onNext(下一个);},
(错误)=>{observer.error(error);},
()=>{observer.onCompleted();}
);
}否则{
onError(新错误('无法自动登录');
}
},(error)=>{this._log.debug('resultObservable#then#error:'+error);observer.onError(error);});
});
返回可维护的结果;
}

对于onNext和onComplete这是相同的吗?你知道为什么要更改
让superGetObs=super.get(url,{headers:headers,withCredentials:true})
to
let superGetObs=super.get(url,{headers:headers,withCredentials:true})。重试(3)
产生此错误:onNext和onComplete的错误相同吗?您知道为什么更改
让superGetObs=super.get(url,{headers:headers,withCredentials:true})
to
let superGetObs=super.get(url,{headers:headers,withCredentials:true})。重试(3)产生此错误:可能重复的可能重复的