使用 Promise 时获取空数组作为输出

问题描述

我正在尝试使用 Amchart 库生成柱形图,因此我需要为 2 系列图表调用数据 API 两次。

    let array = [];
    for (let i = 0; i < seriesKeys.length; i++) {
    let excludedSeries = _.reject(seriesKeys,function (seriesKeyCheck) {
      return seriesKeyCheck === seriesKeys[i];
    });
    let query = this.barChartDataService.buildQuery(criteria,seriesKeys[i],excludedSeries);
    this.reportsService.getBarChartData(criteria,jsonParameters,query).then(data => {
          this.array.push(data);
        
        },error => {
          console.log('failure' + JSON.stringify(error));
        });
  }
  console.log(array);

每当我运行此代码时,我都会得到空数组作为输出。但是我想返回服务返回的数据。任何人都可以帮我解决这个问题。以下是服务代码

    async getBarChartData(criteria: any[],parameters,query): Promise<Object>{
    if(criteria['vizType']=== 'ThingObservationsComparison') {
    const params = _.indexBy(parameters,'name');
    let includeArchived = params.includeArchived ? params.includeArchived.v : false;
    if (includeArchived !== undefined) {
      includeArchived = includeArchived;
    }
    this.asyncData =  await (this.http.get(this.BAR_CHART_API + '?tqx=out:json-array&tq=' + 
    encodeURIComponent(query) + '&use_live_view=true&includeArchived=' + 
    includeArchived)).toPromise();
    return this.asyncData;
  }


}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)