Как получить тело ответа, используя Observables - PullRequest
0 голосов
/ 24 октября 2018

Я использую ng-book в качестве справочного материала, и в одном из этих примеров используется observable для получения данных json, но теперь я хочу получить данные для моего собственного проекта, используя другой API, который является http://mindicador.cl/api, ноЯ получил сообщение об ошибке «Тип выражения возврата не присваивается типу Observables».Как я могу решить это?или Как я могу получить данные JSON с наблюдаемыми?

import {
  Injectable,
  Inject
} from '@angular/core';
import {Observable} from 'rxjs';
import {HttpClient} from '@angular/common/http';
import {Indicadores} from '../indicadores/indicadores.model';

export const MINDICADOR_API = 'http://mindicador.cl/api';

@Injectable()
export class MindicadorService {
  constructor(private http: HttpClient, @Inject(MINDICADOR_API) private apiUrl: string) {
  }

  search(): Observable<Indicadores> {
    const queryUrl = this.apiUrl;
    return this.http.get(queryUrl)
      .subscribe((res) => {
        return new Indicadores()
      });
  }
}

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Вам необходимо вернуть наблюдаемое из сервиса, как показано ниже:

search(): Observable<Indicadores> {
const queryUrl = this.apiUrl;
    return this.http.get(queryUrl)
    );
  }

И в вашем контроллере используйте .subscribe для получения данных

0 голосов
/ 24 октября 2018

Вы пытались вернуться с subscribe, что имеет тенденцию возвращать subscription объект.

Кажется, что вы хотите вернуть данные Observable<Indicadores>, поэтому достаточно <Indicadores> после http.get

search(): Observable<Indicadores> {
    const queryUrl = this.apiUrl;
    return this.http.get<Indicadores>(queryUrl);
}
...