Actualmente estoy tratando de hacer que el método timeout() de Angular 2 Observable funcione correctamente, pero en todos los tutoriales hay un código similar, donde el segundo argumento del método timeout() es un error simple:
return this.http.get('http://...') .timeout(2000, new Error('Timeout exceeded'));Pero cuando copio este código, TypeScript dice que el segundo argumento tiene un tipo no válido y espera ver algo que implementa la interfaz IScheduler .
Una de las formas de resolver el problema es crear una nueva clase que implemente la interfaz IScheduler, pero tiene una funcionalidad con la que no estoy familiarizado (método now() y Tareas ).
¿Alguien sabe, debo hacerlo de esta manera o hay otras formas de hacer que las cosas funcionen? ¿Y si en lugar de error quiero colocar alguna función de devolución de llamada?
timeout no toma un Error como parámetro. Si se produce un tiempo de espera, arrojará un TimeoutError .
Si desea arrojar un tipo particular de error, puede usar el operador timeoutWith para hacer algo como esto:
import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/throw'; import 'rxjs/add/operator/timeoutWith'; return this.http .get('http://...') .timeoutWith(2000, Observable.throw(new Error('Boom!')));