Свойство forkJoin не существует для типа typeof Observable. Угловой 8 - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь сделать несколько запросов HTTP, используя метод forkJoin. Мне нужно вернуть все значения, как простой запрос, но я сталкиваюсь с некоторыми ошибками.

Я использую угловую версию 8.2.3, а моя версия rxjs ~ 6.3.3

См. мой сервисный код:

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { map, catchError } from 'rxjs/operators';
import 'rxjs/add/observable/forkJoin';
import { Observable } from 'rxjs';

const PRAGMA = 'pragma';
const NO_CACHE = 'no-cache';
const CACHE_CONTROL = 'Cache-Control';
const URL = 'https://pokeapi.co/api/v2/';

@Injectable({
    providedIn: 'root'
})

export class PokemonsService {

    public loadPokemonByQuantity$: BehaviorSubject<any> = new BehaviorSubject(undefined);

    constructor(private http: HttpClient) { }

public loadPokemonByQuantity(initial: number, final: number):Observable<any>  {
        const callArray = [];
        const headers = new HttpHeaders({ CACHE_CONTROL: NO_CACHE, PRAGMA: NO_CACHE });
        for (let index = initial; index <= final; index++) {
            callArray.push(this.http.get<any>(`https://pokeapi.co/api/v2/pokemon/${index}`, { headers }));
        }
        return Observable.forkJoin(callArray)
    }
}

stackblitz

Ответы [ 2 ]

1 голос
/ 03 ноября 2019

с "rxjs": "^ 6.5.2", используйте его так:

import { forkJoin } from 'rxjs';
forkJoin(...callArray).subscribe(() => {
       // Do something
    });
0 голосов
/ 03 ноября 2019
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { map, catchError } from 'rxjs/operators';
import { forkJoin, Observable } from 'rxjs';

const PRAGMA = 'pragma';
const NO_CACHE = 'no-cache';
const CACHE_CONTROL = 'Cache-Control';
const URL = 'https://pokeapi.co/api/v2/';

@Injectable({
    providedIn: 'root'
})

export class PokemonsService {

    public loadPokemonByQuantity$: BehaviorSubject<any> = new BehaviorSubject(undefined);

    constructor(private http: HttpClient) { }

public loadPokemonByQuantity(initial: number, final: number):Observable<any>  {
        const callArray = [];
        const headers = new HttpHeaders({ CACHE_CONTROL: NO_CACHE, PRAGMA: NO_CACHE });
        for (let index = initial; index <= final; index++) {
            callArray.push(this.http.get<any>(`https://pokeapi.co/api/v2/pokemon/${index}`, { headers }));
        }
        return forkJoin(callArray);
    }
}

forkJoin - это функция, которая возвращает Observable, это не метод класса Observable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...