首页 > 解决方案 > NestJS 处理 HttpModule 错误

问题描述

NestJS 有以下使用它们的示例HttpModule

@Injectable()
export class CatsService {
  constructor(private readonly httpService: HttpService) {}

  findAll(): Observable<AxiosResponse<Cat[]>> {
    return this.httpService.get('http://localhost:3000/cats');
  }
}

我的问题是,客户端代码(很可能是 a Controller)如何处理这个响应?它如何处理 Observables 以便Cat[]可以访问。或者如果 Http 请求抛出 404 之类的错误怎么办。

在这种情况下,NestJS 客户端(控制器)如何与findAll()服务提供的方法进行交互?

标签: rxjsobservablenestjs

解决方案


我对 NestJs 不太熟悉,但是如果您想运行可观察的 http 请求,通常您可以执行以下操作来使用和 catchError

this.catService.findAll().pipe(
// axio wraps the result in data
map(res=>res.data),
catchError(e=>{
...handle error 404
return of(e)
})).subscribe()

推荐阅读