我正在使用ng-book作为参考,其中一个示例使用observable获取json数据,但是现在我想使用其他http://mindicador.cl/api 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()
});
}
}
答案 0 :(得分:1)
您尝试从subscribe
返回,而这往往会返回subscription
对象。
似乎您想返回数据Observable<Indicadores>
,因此<Indicadores>
之后的http.get
就足够了
search(): Observable<Indicadores> {
const queryUrl = this.apiUrl;
return this.http.get<Indicadores>(queryUrl);
}
答案 1 :(得分:1)
您需要从服务中返回可观察对象,如下所示:
search(): Observable<Indicadores> {
const queryUrl = this.apiUrl;
return this.http.get(queryUrl)
);
}
然后在您的控制器中,使用.subscribe来获取数据