Если наблюдаемое внутри распознавателя маршрута дает сбой, угловой маршрутизатор не перемещается к маршруту. Я хочу обойти это, обернув мой вызов в другую наблюдаемую, которая всегда успешно возвращается, например так:
private fetchUserDataOrReturnNullIfError(url: string, httpOptions: any): Observable<any> {
const getLoggedInUserDataOrNullIfCallFails: Observable<any> = new Observable(observer => {
this.httpClient.get(url, httpOptions).subscribe(userData => {
console.log('Got user data: ', userData);
observer.next(userData);
}, err => {
console.log('Call failed');
observer.next('lol');
});
});
return getLoggedInUserDataOrNullIfCallFails;
}
Моя решимость выглядит так:
resolve(): Observable<any> {
//stuff and things
return this.fetchUserDataOrReturnNullIfError(url, httpOptions);
}
Насколько я понимаю, внутренняя наблюдаемая будет ошибкой, а внешняя наблюдаемая успешно вызовет next
, и, следовательно, маршрут будет успешно разрешен. Этого не происходит
Что я делаю не так / как мне это решить?
Моя цель состоит в том, чтобы решить вернуть результат вызова в случае успеха и вернуть lol
в случае неудачи, но всегда идти по следующему маршруту.