2017-01-20 12 views
0

私はAngular2 RxJS 5.01アップグレードTimeoutSubscriberエラー

TimeoutSubscriber

コードは5.0.0-RCで動作します。..私のHTTPのユニットテストがで失敗5.0.1ために5.0.0-rc.4からRxJSをアップグレードする場合。 4

これは失敗するコードです。任意のアイデアを高く評価

private getHttpStream$(emit: any, url: string, httpResponseMapCallback: any, method: string) { 
    return this.http[method](url, emit, this.options) 
     .timeout(Config.http.timeout, new Error('timeout')) 

     .map((response: any) => { 
     if (response.status && !response.status.toString().startsWith(2)) { 
      return response; 
     } 
     // within the callback, emit provides access to the data emitted 
     return httpResponseMapCallback({emit, response}); 
     }) 

     .catch((err: any) => { 
     // Different code flow in real code v unit test code 
     /* istanbul ignore next */ 
     if (err.status && err.statusText) { 
      return Observable.from([err]); 
     } 

     return Observable.from([err.message]); 
     }); 
    } 

答えて

1

カスタムエラーhas been removed.timeout(timeout, customErr, scheduler)の過負荷。

return this.http[method](url, emit, this.options) 
    .timeout(Config.http.timeout) 

またはカスタムエラーが必要な場合::それは最終リリースにベータ/ RCから行くone of the last changes

はこれにあなたのコードを変更

return this.http[method](url, emit, this.options) 
    .timeout(Config.http.timeout) 
    .catch(err => err instanceof Rx.TimeoutError ? Rx.Observable.throw(new MyCustomError()) : Rx.Observable.throw(err)) 
+0

を私は謝罪しますが、私が持っていたhaventはこれをテストするチャンス。私はあなたが正しいと確信し、できるだけ早くこの回答を受け入れます。私は答えを受け入れることに決して失敗しないので、すぐにあなたの道を+15することを期待してください。どうも – danday74

関連する問題