javascript - Angular http请求执行得太晚
问题描述
在我的 Angular Projekt 中,我有以下代码:
ngOnInit() {
var countTo = 50;
for (let i = 1; i < (countTo + 1); i++) {
this.http.get('https://projekt-dunkelbunt.de/index.php/wp-json/wp/v2/media?max_page=25&page=' + i).subscribe(data =>{
for(let key in data){
if(data.hasOwnProperty(key)){
this.media.push(data[key]);
console.log(this.media);
this.descriptions.push(data[key].description.rendered.split('>', 7));
console.log(this.descriptions);
}
}
console.log("AFTER FOR Length: " + this.media.length);
if (this.media.length != (this.counter * 10)) {
this.execute = false;
}
this.counter++;
}, error => {
console.error("Fehler beim Laden: " + i + " - " + error);
i = countTo + 1;
this.loadPictures();
});
}
inializeDefaultButtons();
console.log("ngOnInit(bilder.component.ts) -> done!");
}
我对这段代码的问题是,for 在 inializeDefaultButtons() 之后执行,我不知道为什么,我需要 inializeDefaultButtons() 方法中来自 FOR 的数据,但是知道 inializeDefaultButtons() 方法被执行,然后执行for 被执行。
我究竟做错了什么?
解决方案
你想达到什么目的?
您可以创建可观察对象,而无需为每个对象订阅它们,然后如果要保留它们的顺序,则将所有可观察对象绑定到 concat 运算符中。
推荐阅读
- dji-sdk - 如何从无人机获取原始视频
- reactjs - 反应原生 - 不变违规:不支持动态更改 onViewableItemsChanged
- android - 如何为android中的图像赋予不同的帧或大小?
- c# - 无法将内容从 restsharp 放到 db
- javascript - 如何使用 uber h3-js 在具有多个数据点的多边形内和具有质心纬度/经度、半径的圆内查找位置?
- c++ - 结构中的 OMP 数据依赖数组
- javascript - 如何从javascript中的绝对路径点找到svg viewbox?
- rest - 如果我使用 POST 进行幂等操作,我会有什么风险?
- reactjs - react.js 无法通过参数读取图片
- ios - 底部安全区域颜色通过半透明键盘 iOS