Kev*_*ing 3 rxjs typescript angular6 rxjs6
我正在使用 Rxjs 6处理Angular 6,同时我有一个关于如果响应失败或有异常返回空/空 Observable 的问题,这是我的假设,我的远程 api 将返回一个IOptionResponse对象,它包含一个消息字符串,可以被指示为“成功”或“失败”,它还包含一个模型,它是一个“IOption”对象数组
export interface IOptionResponse {
message: string;
model: IOption[];
}
Run Code Online (Sandbox Code Playgroud)
这是我的服务方法名称,它将返回一个 IOption 数组的 Observable,它是我的远程 API 结果的“模型”
loadIOptionMembersRelationship(): Observable<IOption[]> {
return this.httpClient.get<IOptionResponse>('${environment.apiUrl}/api/member/XXX')
.map(
(response) => {
console.log(response);
// if response.message is success, return IOption[] model
if (response.message == responseMessage.Success) {
return response.model;
}
else {
// return Observable.empty<IOption[]>(); failed
// return new Observable.empty<IOption[]>(); failed
// return new EmptyObservable<IOption[]>(); failed
// return new Observable<IOption[]>.from([]); failed
// Otherwise return a NULL/EMPTY Observable
//What should be the correct way to implement here???
}
}
);
}
Run Code Online (Sandbox Code Playgroud)
我已经在这里阅读了类似的帖子,但是我尝试了所有可能的解决方案,但它们都不起作用,我不确定是因为发布的解决方案已过时,还是 rxjs 6 中的某些方法已更改,或者它可能是一个打字稿问题...
如果你想在使用 Rxjs6 时返回一个空的 Observable 数组,你需要...
import { of } from 'rxjs';
Run Code Online (Sandbox Code Playgroud)
然后你想要返回 <IOption[]> 类型的空 Observable 数组......
return of<IOption[]>([]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21537 次 |
| 最近记录: |