Angular 为什么订阅observable不填充数组?

Angular 为什么订阅observable不填充数组?,angular,Angular,我的component.ts文件中有以下代码 ngOnInit(): void { this.dbService.getNotes().subscribe(data => { this.arrNotes = data; console.log(this.arrNotes); console.log("The length of the array is:" + this.arrNotes.length); }); 当我检查控制台时,会显示数组长度为0。

我的component.ts文件中有以下代码

ngOnInit(): void
{
this.dbService.getNotes().subscribe(data => {
  this.arrNotes = data;
  console.log(this.arrNotes);
  console.log("The length of the array is:" + this.arrNotes.length);

});
当我检查控制台时,会显示数组长度为0。 请记住,我是从查询数据库的API中检索可观察对象的。我认为这可能与事务的异步性质有关。请帮忙

另外,请记住,我在模板文件中使用了arrNotes数组,它工作得非常好,这意味着它的填充是均匀的。在模板文件中,我有这个代码


{{n.ID}
{{n.Note}}
编辑
拯救
删除

为什么控制台中显示的长度为0?

请显示
dbService.getNotes
的代码。我们需要查看您在服务中执行的实际呼叫。此外,还需要使用PostMan或Curl等工具检查API调用返回的内容。对我来说,这与“异步性质”无关,因为您登录订阅(只有在可观察对象发出值之后才执行)。在我看来,您的服务实际返回(异步)空数组。是否确定订阅不会先获取空数组,然后获取另一个包含数据的列表?请尝试通过管道将其传输,以便只获取一个,然后查看最终是否仍填充数据:this.dbService.getNotes().pipe(获取(1)).subscribe(数据=>{…我很确定问题出在dbService.getNotes函数上。请编辑您的帖子并添加此函数的代码
      </td>
      <td> {{n.ID}}</td>
      <td>
        <div *ngIf="!enableEdit || enableEditIndex != i">{{n.Note}}</div>
        <div *ngIf="enableEdit && enableEditIndex == i"><input  type="text" [(ngModel)]="n.Note" /></div>
      </td>
      <td>


        <button *ngIf="!enableEdit || enableEditIndex != i" class="btn btn-primary" (click)="enableEditMethod ($event, i)">Edit</button>
        <button *ngIf="enableEdit && enableEditIndex == i"  class="btn btn-primary" (click)="saveRowData(n)">Save</button>

        <button class="btn btn-primary">Delete</button>
      </td>
    </tr>