gpt4 book ai didi

javascript - Observables - Angular - .map 不起作用但 .subscribe 起作用

转载 作者:行者123 更新时间:2023-11-30 11:13:13 26 4
gpt4 key购买 nike

我有一个被调用的端点,看起来像这样:

organizationSubsidiaries(sfid: string) {
const url = `${this.baseURL}/${ENDPOINTS.organizations}/${this.organization.id}/${ENDPOINTS.subsidiaries}`;
return this.http.get(url).map(res => res.json());
}

如果我这样调用它,它可以正常工作并且可以正确控制:

getOrgSubsidiaries(id) {
return this.organizationSubsidiaries(id)
.subscribe(data => { //changing this to .map means it won't work!

let subsidiaryNames = []
data.forEach(sub => {
console.log(sub.SubsidiaryName)
subsidiaryNames.push(sub.SubsidiaryName)
})
subsidiaryNames = subsidiaryNames.filter(this.onlyUnique);

console.log('data from subsidiaries' + JSON.stringify(subsidiaryNames))

});
}

当它是 .map 时它不起作用,但我需要它是 .map 因为我需要 subscribe另一个文件,这样我就可以在另一个组件中异步使用数据:

ngOnInit(): void {
this.engagementService.getOrgSubsidiaries(id).subscribe(data => {
this.orgSubsidiaries = data;
});

我需要它,所以 .map 也像 subscribe 一样工作,所以我实际上可以 subscribe 它并使用我的数据其他组件!

在一个稍微不同的问题中,我的其他组件中的这个函数无法识别 id。

最佳答案

在 rxjs 6 中使用管道

 return this.http.get(url).pipe( map(res => res.json()));

导入 map

import { map } from 'rxjs/operators'

关于javascript - Observables - Angular - .map 不起作用但 .subscribe 起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52757497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com