我有一个函数:
private getValues() {
this._values = [];
this._watchlistElements.map(v =>
this.http.get('http://localhost/getValue/' + v.xid)
.subscribe(res => {
this._values.push(res.json());
console.log(this._values.length);
}))
};
调用该函数后,我得到的结果如下所示:
我的问题是如何检查_values
变量的实际长度?该解决方案有效,但如您所见,它会在每次迭代时返回一个结果,就像在循环中一样。如何让它只返回一个最终结果?在这种情况下,-->
的长度应该只是 7。
最佳答案
在 Promise 中捕获每个调用,然后等待所有调用是一个好方法:
Promise.all(this._watchlistElements
.map(v => new Promise(resolve => this.http.get(...).subscribe(res => resolve(res.json())))))
.then(arrayWithResultFromEachCall => console.log(arrayWithResultFromEachCall.length))
关于javascript - Http get 调用返回太多结果。::JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41199265/