2016-12-26 5 views
0

angular2 Observarbleの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.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; 
    } 

は私が得るエラーは以下のとおりです。http://pastebin.com/BBcdc9sy

私が間違って何をしているのですか?

+0

可能重複[Rxjs件名次またはonNext(http://stackoverflow.com/questions/38555727/rxjs-subject-next-or-onnext) – olsn

答えて

3

RxJs 5 observerのメソッドの名前が変更されました。 onErrorの代わりにerrorを使用する必要があります。

+0

これは同じですか? – mp3por

+0

ありがとうございました...私は同じリンクを読んでいます:) – mp3por

+0

なぜあなたは 'let superGetObs = super.get(url、{headers:headers、withCredentials:true});を' = super.get(url、{headers:headers、withCredentials:true})。retry(3); 'はこのエラーを生成します:http://pastebin.com/ScrzsNh0 – mp3por

1

あなたは誤った構文 '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; 
    } 
onNextとonCompleteのための
関連する問題