我正在尝试按顺序运行此功能。输出应该是 纬度长度, 纬度长度A, 纬度长度B
但我得到的输出是 纬度长度, 纬度长度 B, 纬度长度A
我想先处理“this.adminService.getUserList().subscribe(res => {}”,但它在 makeAnAPICall() 函数完成后被处理。 我的代码如下:
async makeAnAPICall():void {
console.log("latitude length",this.latitude.length);
this.latitude = [];
this.longitude = [];
delay(2000);
await this.adminService.getUserList().subscribe(res => {
for(let i =0; i < res.length; i++) {
this.latitude.push(res[i].latitude);
this.longitude.push(res[i].longitude);
};
console.log("lat length A",this.latitude.length)
});
console.log("lat length B ",this.latitude.length);
}
答案 0 :(得分:0)
您需要先将 observable 转换为 promise。
async makeAnAPICall():void {
console.log("latitude length",this.latitude.length);
this.latitude = [];
this.longitude = [];
delay(2000);
const res = await this.adminService.getUserList().first().toPromise();
for(let i =0; i < res.length; i++) {
this.latitude.push(res[i].latitude);
this.longitude.push(res[i].longitude);
};
console.log("lat length A",this.latitude.length)
console.log("lat length B ",this.latitude.length);
}