Я хотел обработать ошибки для метода в angular. Я прочитал, что могу использовать catchError () внутри .pipe (). Когда я добавил проверку catchError, я получаю переменную roomId
, помеченную красной волнистой линией, которая говорит: TS2345: Argument of type 'unknown' is not assignable to parameter of type 'number'
Это часть, где я делаю проверку ошибок.
this.firstRoom(room).pipe(
first(),
catchError((error: HttpErrorResponse)=>{
if(error.status != 200){
// handle error
}else{
// return error
return throwError(error);
}
}),
А вот и полный метод.
public findRoom(room: Room): Observable<house> {
return new Observable(house => {
this.firstRoom(room).pipe(
first(),
catchError((error: HttpErrorResponse)=>{
if(error.status != 200){
// handle error
}else{
// return error
return throwError(error);
}
}),
).subscribe(roomId =>
this.gointToThisRoom(roomId).pipe( <----- roomId throws that argument type unknown
first()
).subscribe(roomInfo => {
if (roomInfo.status === "failed") {
house.next(house.failed);
} else {
this.downloadRoom(roomId).pipe(
first()
).subscribe(blobFile =>
this.getRoom(blobFile, name)
);
house.next(house.ready)
}
}
)
)
});
}
Есть идеи, почему это так?