angular - 通过 Angular/TypeScript 中的 HTTP-Get-Request 循环使用不同的值
问题描述
问题已解决
source:Protocols[] = [];
var lengthArray = 6
var arrayid = [2, 6, 1, 3, 4, 5];
for (let i = 0; i <= lengthArray-1; i++) {
let urlstring: string = '.../display/' + arrayid[i] + '/protocols';
this.httpClient.get<Protocols[]>(urlstring)
.subscribe(protocols => {
for (const item of protocols) {
this.source.push({Id: item['Id']});
}
console.log(arrayid[i], this.source);
-----> this.source = []
});
}
我想使用 http-get-request 遍历一个 url,以根据 arrayid 获得不同的响应。我的问题是响应重叠并且与邮递员不同。我的假设是,“this.source”中的值是连续的并且不会被重置。有什么技巧可以解决这个问题吗?
谢谢!
source:Protocols[] = [];
var lengthArray = 6
var arrayid = [2, 6, 1, 3, 4, 5];
for (let i = 0; i <= lengthArray-1; i++) {
let urlstring: string = '.../display/' + arrayid[i] + '/protocols';
this.httpClient.get<Protocols[]>(urlstring)
.subscribe(protocols => {
for (const item of protocols) {
this.source.push({Id: item['Id']});
}
console.log(arrayid[i], this.source);
});
}
对于我收到的每个数组值(2、6、1、3、4、5):
0: {Id: 13}
1: {Id: 14}
2: {Id: 15}
3: {Id: 19}
4: {Id: 20}
5: {Id: 21}
6: {Id: 28}
7: {Id: 28}
8: {Id: 29}
9: {Id: 29}
.....
length: 169
当我删除for循环并手动更改arrayid编号时,值就像邮递员一样:
对于数组值 2:
0: {Id: 155}
1: {Id: 156}
2: {Id: 157}
3: {Id: 154}
length: 4
对于数组值 6 :
empty because there is no value
length: 0
对于数组值 1 :
0: {Id: 13}
1: {Id: 14}
2: {Id: 15}
3: {Id: 19}
4: {Id: 20}
5: {Id: 21}
6: {Id: 28}
7: {Id: 28}
8: {Id: 29}
9: {Id: 29}
.....
length: 162
对于数组值 3:
empty because there is no value
length: 0
对于数组值 4 :
empty because there is no value
length: 0
对于数组值 5 :
0: {Id: 158}
1: {Id: 159}
2: {Id: 174}
length: 3
解决方案
推荐阅读
- php - PHP 爆炸和排序
- angular - Angular 6 库共享样式表
- scikit-learn - 在 julia 上使用 sklearn.mixture.GaussianMixture 方法
- php - 最终用户尚未完成身份验证和身份验证登录流程 eBay
- kubernetes - 哪个是详细了解 Kubernetes 中 client-go repo 重构的最佳文档
- rxjs - 使用单一模型在多个组件之间传递数据并保存它?
- javascript - Ionic viewchild 变量在 ng-switch 中不可用
- c# - Entity Framework Core:Fluent api 多对多
- javascript - Web 套接字在 javascript 中不能与 SSL 和 WSS 一起使用
- javascript - 使用 Javascript 读取本地 JSON 文件