首页 > 解决方案 > 如何等待响应的角度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()
    }
}

标签: javascriptangulartypescript

解决方案


如果你想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();
        })
   }
 }


推荐阅读