在数组 o Angular 和 Typescript 中保存数据时出现问题

Problem with saving data in array o Angular and Typescript

问题:我的基准测试 foreach loop 没有将所有值保存到数组中,相反,它保存了一个并给出错误 null。如果我删除推送并改为 console.log,它会显示所有结果。

  onGetResults() {
    this.accountService.getBenchmark(this.user.id)
      .pipe(first())
      .subscribe(
        benchmarks => {
          this.benchmarks = benchmarks;
          const benchmarkDates: any[] = null;
          const benchmarkValues: any[] = null;
          this.benchmarks.forEach(data => {
            let becnchmarkDate: any = data.createdAt;
            benchmarkDates.push(becnchmarkDate);
            benchmarkValues.push(data.benchmarkResults);
          });
          const allData = {
            label: benchmarkDates,
            data: benchmarkValues,
            fill: true
          }
          this.benchmarkChart[0] = new Chart({
            type: 'radar',
            data: allData,
            options: {
              elements: {
                line: {
                  borderWidth: 3
                }
              }
            }
          });
        }
      );
  }

出于一些干净的代码和性能原因,我只是尝试在函数外部设置数组声明,

const benchmarkDates: any[] = null;
const benchmarkValues: any[] = null;

onGetResults() {
  this.accountService.getBenchmark(this.user.id)
    .pipe(first())
    .subscribe(
      benchmarks => {
        this.benchmarks = benchmarks;
     
        this.benchmarks.forEach(data => {
          benchmarkDates.push(data.createdAt;);
          benchmarkValues.push(data.benchmarkResults);
        });
        const allData = {
          label: benchmarkDates,
          data: benchmarkValues,
          fill: true
        }
        this.benchmarkChart[0] = new Chart({
          type: 'radar',
          data: allData,
          options: {
            elements: {
              line: {
                borderWidth: 3
              }
            }
          }
        });
      }
    );
}