2017-01-20 3 views
0

Когда я обновляю RxJS из 5.0.0-rc.4 до 5.0.1 мои модульных тестов HTTP завершаться ..Angular2 RxJS 5,01 обновление TimeoutSubscriber ошибка

TimeoutSubscriber

код работает с 5.0.0-RC. 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

Перегрузка .timeout(timeout, customErr, scheduler) с пользовательской ошибки has been removed. Это было one of the last changes переход от беты/RC до финального релиза

Измените код следующим образом:

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

или, если вам нужна пользовательская ошибка:

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

Я извиняюсь, я гавань был шанс проверить это. Я уверен, что вы правы и будете принимать этот ответ, как только смогу. Я никогда не принимаю ответ, так что ожидайте +15 свой путь в ближайшее время. спасибо – danday74

Смежные вопросы