При использовании Observable.merge HTTP-запросы никогда не вызывают - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь зациклить http-запросы с помощью оператора merge.

Сервис:

addData(data) {
    return this.http
        .post(this.url, data)
        .map(resp => {
            return resp;
        });
}

Компонент:

    addData(data) {
    if (data.length != 0) {
        let respObs: Observable<Response>[] = [];
        data.forEach(element => {
            respObs.push(this.addService.addData(element));
        });
        Observable.merge(respObs)
            .subscribe(resp => {
                console.log(resp); // Observable object not the Response object is getting logged.
            }, err => {
                console.log(err);
            });
    }
}

Используемые версии:

Угловой: 4.3,5
RxJS: 5.1.0

Когда проверяется сетевая консоль, я вижу, что http-вызовы никогда не выполнялись, и наблюдаемые объекты регистрируются вместо ответов на http-вызовы.

1 Ответ

0 голосов
/ 06 ноября 2018

Для Rxjs 5 вам необходимо передать Observables в виде списка через запятую. Попробуйте это:

Observable.merge(...respObs)
  .subscribe(resp => {
    console.log(resp); // Observable object not the Response object is getting logged.
  }, err => {
    console.log(err);
  });
...