Angular:将类型字符串返回到catchError中,但具有不同类型的HTTP
我的Observable中的返回类型有问题。在我的服务中,当我尝试将字符串放入Angular:将类型字符串返回到catchError中,但具有不同类型的HTTP,angular,typescript,rxjs,Angular,Typescript,Rxjs,我的Observable中的返回类型有问题。在我的服务中,当我尝试将字符串放入catchError时,我的foo()方法的返回类型出现错误 服务台 foo():可观察的{{ 返回(“错误”); }) ); } httpService.ts postSomething():可观察{ 返回这个.httpClient.request('post','url',{body}); } 错误说明: foo(): Observable<string | ObjModel> { foo():可
catchError
时,我的foo()
方法的返回类型出现错误
服务台
foo():可观察的{{
返回(“错误”);
})
);
}
httpService.ts
postSomething():可观察{
返回这个.httpClient.request('post','url',{body});
}
错误说明:
foo(): Observable<string | ObjModel> {
foo():可观察{
问题是我只想返回一个字符串,否则我的foo()
实现会返回一个错误,告诉我它需要一个字符串或一个objModel
感谢您的帮助。问题是,如果没有错误,它将不会调用
catchError
,并将返回实际的observatable
。因此您还需要处理这种情况。如果没有错误,您的foo()函数将返回
Observable<ObjModel>
可观察
类型,因此不能声明要返回的foo()函数
foo(): Observable<string>
foo():可观察
键入。您的函数foo()
必须管理两种不同的情况
postSomething()
返回的任何内容,您将其声明为可观察的
catchError
中编码的内容,即可观察的,因为您返回的of('error')正好是发出字符串的可观察的`
foo()
可以返回可观察的
或可观察的
,即返回可观察的
。这就是编译器抱怨的原因
Observable<ObjModel>
foo(): Observable<string>