【发布时间】:2020-10-19 17:29:22
【问题描述】:
我是学习 rxjs 操作的新手,我正在尝试使用 rxjs 来获取不同的项目。
我从我的 api 调用中获取以下数据
[0 … 99]
0: {option: "OptionOne", subOption: "subOption11"}
1: {option: "OptionOne", subOption: "subOption12"}
2: {option: "OptionTwo", subOption: "subOption21"}
3: {option: "OptionTwo", subOption: "subOption22"}
...
...
...
API 调用
getOptions(): Observable<Options> {
const url = `https://localhost:5001/api/options/`;
return this.http.get<Options>(url).pipe(map((item) => item));
}
我正在尝试获取选项和子选项。我在 component.ts 文件中按以下方式设置了代码
getDistinctOptions(data: Options) {
const source$ = from([data]);
source$.pipe(distinctUntilKeyChanged('option')).subscribe(console.log);
}
如何循环并获得不同的选项?
【问题讨论】:
-
为什么你的 API 调用
map(item => item)- 这是做什么的? -
@MrkSef,映射传入的数据?
-
@JeffBenister 地图用于在您的情况下转换您的数据,它基本上不会改变任何东西,您可以只是
return this.http.get<Options>(url)您所说的不同项目是什么意思? -
@Elmehdi,我有多个选项(如 optionOne、optiontwo、optionThree ),但我希望它们只返回一次。如果我有 100 条记录,但只有 10 个选项(optionOne...optionTen),我想返回这十个选项。谢谢你,我会在我的代码中改变它。
-
@JeffBenister 所以你想删除重复的?