Procédure d'erreur erronée
Bonjour tout le monde,
Il semble que mon code d'erreur ait loupé une migration, tant qu'aucune erreur ne se produit je n'ai pas l'occasion de m'en rendre compte, mais quand il faut récupérer une erreur ça coince.
Dans ErrorHandleService j'ai ça :
Code:
1 2 3 4 5 6
| handleError<T>(operation: 'operation', result?: T) {
return (error: any): Observable<T> => {
console.log(error[0]);
return of(result as T);
}
} |
appelé par LocationService :
Code:
1 2 3 4 5 6 7 8 9 10 11
| getCountries(): Observable<Country[]> {
const uri = decodeURIComponent(
`${Constants.locationAPIUrl}\countries?apikey=${Constants.apiKey}`
);
return this.http.get<Country[]>(uri)
.pipe(
tap(_ => console.log("fetched countries")),
catchError(this.errorHandleService.handleError.bind(this))
);
} |
(le bind date de la dernière migration)
et tout ça appelé dans la page web :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| async getCountries() {
const promise = new Promise((resolve, reject) => {
this.locationService.getCountries()
.toPromise()
.then(
res => {
this.countries = res;
resolve();
},
err => {
console.error(err);
this.errorMessage = err;
reject(err);
}
);
});
await promise;
} |
Quand le serveur refuse la connexion, après la ligne qui m'avise de ça, voilà ce que m'affiche la console :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| ERROR TypeError: You provided '(error) => {
console.log(error[0]);
return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__["of"])(result);
}' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
RxJS 12
Angular 16
RxJS 21
ZoneAwarePromise Angular
toPromise RxJS
promise weather.component.ts:61
ZoneAwarePromise Angular
getCountries weather.component.ts:59
__awaiter tslib.es6.js:74
ZoneAwarePromise Angular
__awaiter tslib.es6.js:70
getCountries main.js:377
DoButtonCountries weather.component.ts:44
__awaiter tslib.es6.js:74
ZoneAwarePromise Angular
__awaiter tslib.es6.js:70
DoButtonCountries main.js:359
WeatherComponent_Template_input_click_4_listener weather.component.html:7
Angular 22
WeatherComponent_Template weather.component.html:7
Angular 13
RxJS 3
core.js:4197
Angular 4
RxJS 5
Angular 19
RxJS 21
ZoneAwarePromise Angular
toPromise RxJS
promise weather.component.ts:61
ZoneAwarePromise Angular
getCountries weather.component.ts:59
__awaiter tslib.es6.js:74
ZoneAwarePromise Angular
__awaiter tslib.es6.js:70
getCountries main.js:377
DoButtonCountries weather.component.ts:44
__awaiter tslib.es6.js:74
ZoneAwarePromise Angular
__awaiter tslib.es6.js:70
DoButtonCountries main.js:359
WeatherComponent_Template_input_click_4_listener weather.component.html:7
Angular 22
WeatherComponent_Template weather.component.html:7
Angular 13
RxJS 3 |
en bref dans error je n'ai pas le type attendu, et j'avoue que je pédale un peu pour sortir de là ...