Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

197
Views
¿Cómo manejar los errores observables pero continuar con el seguimiento de los observables?

Tengo un observable, ¿un http se interpone en el medio del procesamiento de otros observables? En el caso del código de respuesta de obtención de http de cualquier cosa menos 200, quiero tomar nota de este error pero continuar con el siguiente observable.

Hasta ahora tengo esto:

 this.getConfigurationSettings() .do(config => { console.log('configuration settings.: ', config); this.configSettings = config; this.subscriptionService.setWSAddressProvider('badUrl'); }) .switchMap(config => this.askForWSData()) .do(config => console.log('askForWSData' + config)) .switchMap(r => this.processWSData()) .subscribe( config => { console.log('start of data processing: ' + config); }, err => { // Log errors if any console.log(err); }, () => console.log('app exiting'));

y el observable que puede devolver un código de error http es el siguiente:

 setWSAddressProvider() : Observable<string[]> { return this.http.get('badUrl') .map((res:Response) => { this.address = res.text(); return [res.text()]; }); // .catch((error:any) => // Observable.throw('Server error') // ); }

el caso anterior genera un código de respuesta 400. Quiero registrar ese retorno pero continuar con otros observables. ¿Como hacer eso?

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede usar catch para manejar errores http

 setWSAddressProvider() : Observable<string[]> { return this.http.get('badUrl') .map((res:Response) => { this.address = res.text(); return [res.text()]; }); .catch((error: Response | any) => { if (error instanceof Response) { if (error.status === 400) { console.log("Server responded with 400"); // Create a new observable with the data for the rest of the chain return Observable.of([]); } } // Re-throw unhandled error return Observable.throw(err); });

}

about 4 years ago · Santiago Trujillo Report

0

Intente usar la función Observable onErrorResumeNext:

 setWSAddressProvider() : Observable<string[]> { return this.http.get('badUrl') .map((res:Response) => { this.address = res.text(); return [res.text()]; }) .onErrorResumeNext((error: Response | any) => { if (error instanceof Response) { if (error.status === 400) { console.log("Server responded with 400"); } return []; } }); }

Consulte https://xgrommx.github.io/rx-book/content/getting_started_with_rxjs/creating_and_querying_observable_sequences/error_handling.html#ignoring-errors-with-onerrorresumenext

y esta respuesta: Diferencia entre catch y onErrorResumeNext

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!