Использование нескольких сервисов для заполнения угловой таблицы данных

Если вы хотите ранжировать только одного человека, вы можете сделать следующее:

SELECT COUNT(Age) + 1
 FROM PERSON
WHERE(Age < age_to_rank)

Это ранжирование соответствует функции ORACLE RANK (Если у вас есть люди с одинаковым возрастом, они получают одинаковый ранг , и ранжирование после этого не является последовательным).

Это немного быстрее, чем использование одного из вышеперечисленных решений в подзапросе и выбор из этого для получения рейтинга одного человека.

Это можно использовать для ранжирования всех, но это медленнее, чем вышеупомянутые решения.

SELECT
  Age AS age_var,
(
  SELECT COUNT(Age) + 1
  FROM Person
  WHERE (Age < age_var)
 ) AS rank
 FROM Person
0
задан Tushar Walzade 4 March 2019 в 13:21
поделиться

2 ответа

Похоже, вам нужен ответ от обеих служб одновременно; если это так, то RxJS ForkJoin - ваш друг! Вы можете использовать forkJoin следующим образом -

import { forkJoin } from 'rxjs';

submit() {
    const combined = forkJoin([
        this.data.getUsers(),
        this.otherData.getUnitAssignments()
    ]);
    combined.subscribe((response) => {
        // you will get 2 arrays in response
        this.dataSource.push(response[0].rows);
        this.dataSource.push(response[1].rows);
    });
}
  • FYI , forkJoin ожидает завершения каждого http-запроса и группирует все observables, возвращаемые каждым вызовом http в один наблюдаемый массив, и, наконец, возвращают этот наблюдаемый массив.
0
ответ дан Tushar Walzade 4 March 2019 в 13:21
поделиться

Одним из решений является использование оператора RxJs combLatest для объединения ответов от всех служб:

submit() {
  combineLatest(
    this.service1.getData(),
    this.service2.getData(),
    this.service3.getData()
  ).subscribe(allData => ...)
}

[116 ]

Редактировать: После дальнейших размышлений я предлагаю, чтобы в этом случае использования, когда должен завершаться каждый HTTP-запрос, вы использовали forkJoin в ответ Тушара Уолзаде. Этот ответ SO дает краткое объяснение различия между forkJoin и combineLatest.

0
ответ дан Sam Herrmann 4 March 2019 в 13:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: