Javascript 等待通过输入获取组件之间的角度

Javascript 等待通过输入获取组件之间的角度,javascript,angular,Javascript,Angular,我用fetch向app.component中的reqres api用户发出请求,然后通过输入将数据共享给他的子组件(hello.component)。我在子模板中获得了正确的用户名,我试图在控制台中打印用户,但得到了一个空数组。有没有办法“等待”另一个组件的响应?我想这是一个异步问题。以下是链接: 提前谢谢 应用程序组件: 从'@angular/core'导入{Component,VERSION,OnInit}; @组成部分({ 选择器:“我的应用程序”, templateUrl:“./app

我用fetch向app.component中的reqres api用户发出请求,然后通过输入将数据共享给他的子组件(hello.component)。我在子模板中获得了正确的用户名,我试图在控制台中打印用户,但得到了一个空数组。有没有办法“等待”另一个组件的响应?我想这是一个异步问题。以下是链接:

提前谢谢

应用程序组件:

从'@angular/core'导入{Component,VERSION,OnInit};
@组成部分({
选择器:“我的应用程序”,
templateUrl:“./app.component.html”,
样式URL:['./app.component.css']
})
导出类AppComponent{
公共用益;
构造函数(){
this.usuarios=[];
}
恩戈尼尼特(){
这是getUsers();
}
getUsers(){
取('https://reqres.in/api/users')
.then(data=>data.json())
。然后(用户=>{
this.usuarios=users.data;
console.log(this.usuarios);
});
}

}
由于提取操作是异步的,因此在初始化子对象时,usuarios数组将为空。要检测值更改,请移动逻辑,该逻辑将使用获取的结果进行ngOnChanges。 像这样:

 ngOnChanges(changes: SimpleChanges) {
    const { previousValue, currentValue } = changes.usuarios;
    if (previousValue !== currentValue) {
      console.log(this.usuarios);
    }
  }
有一个条件来检查ngOnChanges中的值是否发生了变化是至关重要的,否则逻辑将不断触发。


<hello *ngIf="usuarios.length>0" [usuarios]="usuarios"></hello>
<p>
  Start editing to see some magic happen :)
</p>
开始编辑以查看发生的奇迹:)


您提供的Stackblitz链接将项目数组打印到控制台。使用ngOnChanges检测usuarios数组中的更改。由于操作是异步的,因此在初始化时数组将为空。如果您不想使用onChanges,您也可以查看EventEmitter。是的,这是app.component fetch的响应,如果我在hello.component(子组件)的控制台中打印Usarios,我得到一个空数组Tanks Berk,ngOnChanges似乎可以正常工作