Можете ли вы сделать это в plunker Пожалуйста, чтобы я мог легко понять это.

рий состоит в том, что существует единственный сервис (json-data-service.ts), имеющий метод getWebservicedata (), который возвращает http.post (url), т.е. он вызывает ajax-вызов при вызове метода. У меня есть разные компоненты, такие как компоненты круговой диаграммы, компоненты линейчатой ​​диаграммы, компоненты линейных диаграмм и т. Д., И все они созданы одновременно на одной странице. Все они имеют свои разные метаданные (clientJson) и одну наблюдаемую.

Есть ли способ, с помощью которого мы можем сделать один AJAX-запрос несколькими компонентами параллельно.

Другими словами, есть ли такой способ, что перед выполнением ajax-запроса он берет все метаданные из разных компонентов (PieComponent.ts, LineComponent.ts и т. Д.) И извлекает данные из одного и того же URL-адреса для разных метаданных (clientJson) разных компонентов в то же время параллельно?

JSON-данных-service.ts
    getSolrData(clientJson): Observable<JsonData[]> {
    console.log('Retriving Data from Solr Server.......' + JSON.stringify(clientJson));
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });
    let url = "http://183.82./PI3_Sor_WebSer/solrSe"; 
    return this.http.post(url, clientJson).map((res: Response) => res.json());
  }
секторный chart.component.ts
initData() {

    let clientJson = {
      "aoId": "M_AO_918","viewBys": ["usstate"]----------------- };

    this.jsonDataService.getSolrData(clientJson).subscribe(
      success => this.buildPieChart(success),
      error => this.errorMessage = error
    );
  }
  buildPieChart(jsonData) {
-----------
}
линия-chart.component.ts
initData() {

    let clientJson = {
      "aoId": "M_AO_918","viewBys": ["brands"]----------------- };

    this.jsonDataService.getSolrData(clientJson).subscribe(
      success => this.buildlineChart(success),
      error => this.errorMessage = error
    );
  }
  buildlineChart(jsonData) {
-----------
}

Ответы на вопрос(0)

Ваш ответ на вопрос