javascript - 如何等待响应的角度for循环?
问题描述
如何等待角度的for循环响应?并更新响应的最新值。
users: Users
getUsers(){
this.userService.getUsers().subscribe(
(res: Users) => {
this.users = res
}
)
}
setValue(){
for (let i = 0; i < this.users.length; i++) {
if (this.users.length > 0) {
break
}
///some code
this.getUsers()
}
}
解决方案
如果你想API
在你的循环中调用,你可以使用 async await 这里是例子。
async setValue() {
for (let i = 0; i < this.users.length; i++) {
if (this.users.length > 0) {
break
}
///some code
await this.getUsers();
console.log(i); // here you can see that this line will execute after the api call is completed
}
}
getUsers(){
return new Promise(resolve => {
this.userService.getUsers().subscribe(
(res: Users) => {
this.users = res;
resolve();
}, err => {
resolve();
})
}
}
推荐阅读
- c++ - 如何在 C++ 上读取文件、反转部分文本并将反转的部分写入另一个文件?
- python - 从实例访问类变量如何在 python 中工作?- 一个令人困惑的例子
- java - 使用 css 的背景图像从 servlet 显示 svg
- c# - 有条件地填充 LINQ To 实体中的类字段
- scala - scala map 的花括号和括号
- kubernetes - 如何在 traefik 实例之间共享限速状态?
- javascript - json 返回字符数组
- php - 汉字只是不会出现在php文件上
- apache-kafka - 为什么kafka connect分布式模式总是只分配一个任务?
- python - 如何控制多个计算