angular - Angular 在循环中从公司 ID 解析公司名称
问题描述
我是 angular 和 rxjs 的新手,我想company name
从company id
数组中解析。
我有这种格式的公司数据:
|---------------------|------------------|
| CompanyID | CompanyName |
|---------------------|------------------|
| 1234 | CompanyA |
|---------------------|------------------|
| 5678 | CompanyB |
|---------------------|------------------|
还有我的角码:
let items = [];
let companyIDs = [1234, 5678];
companyIDs.forEach(companyID => {
this.items.push({
compId: companyID,
compName: ??? <------- how to resolve the name from the companyID above?
})
});
我有一个返回 RXJS 的服务,observable
可以让我解决company name
this.companyService.getCompanyName(1234).subscribe((companyName) => {
//return CompanyA
})
如何使用companyService
解析公司名称?
编辑:
我知道会有很多请求this.companyService.getCompanyName()
循环调用,this.companyService.getCompanies()
欢迎使用任何其他建议,例如使用。
解决方案
如果您迭代您的 ID 并为每个请求获取一个 companyID,那么这就是很多 http 请求。尽管如此,您可以通过以下方式使您的特定案例生效:
companyIDs.forEach(companyId => {
this.companyService.getCompanyName(companyId)
.subscribe(compName => this.items.push({
compId: companyId, compName: compName
})
});
这种方法的问题是你必须在每次迭代时发出一个服务请求,这意味着一个 100 个 Id 的数组将使它成为一个 100 个 http 请求,这并不接近理想......
如果您可以进行 httpCall 来获取表格中的 ID 和公司名称的整个表格,如您的问题中所示...例如this.service.getAllCompanies() // return all the company objects with { id, name }
,那么您可以进行该调用,然后迭代结果,使其成为简单的http请求。
推荐阅读
- flutter - Flutter:我可以强制 Flutter 从 pubspec.lock 安装包吗?
- tomcat - Apache TomCat 拒绝访问文件
- javascript - 本地存储缺少 ID 令牌,请进行身份验证
- reactjs - 如何使用“useMediaQuery”为小、中、大屏幕设置 Material-UI 断点
- python - 如何在python Django中保存到数据库之前进行逻辑操作
- android - android:buttonStyle 和 android:imageButtonStyle 可以用于 Theme.MaterialComponents 吗?
- git - 无法在 .git/COMMIT_EDITMSG 中插入更改 ID 行
- angular - 如何做一个嵌套在 TypeScript 中的过滤器
- sql - 如何纠正“缺少右括号”的问题?
- python - 如何仅检查列表中是否存在两个值