温馨提示:本文翻译自stackoverflow.com,查看原文请点击:angular - http.get() does not return an observable
angular ionic4 typescript rxjs angular-httpclient

angular - http.get()不返回可观察到的

发布于 2020-03-27 10:43:05

注意:问题肯定是未执行ionViewDidLoad()导致http.get确实可观察到。 我想在执行请求时获得可观察到的信息,以便稍后获得其 json响应,但是我没有收到错误,并且浏览器的控制台中也未显示任何内容。我不知道为什么它不返回任何东西。

我尝试了许多网址,并多次检查了导入。 console.log没有粘贴数据 home.page.ts


    import { ServicioService } from '../servicio.service';
    import { Observable } from 'rxjs';
    import { HttpClient } from '@angular/common/http';
    ...
    ionViewDidLoad(){
          const hola = this.servicio.goWiki(this.userInput).
          subscribe((response) => {
            console.log(response);
           });
        }

维修服务


    import { Injectable } from '@angular/core';
    import { map } from 'rxjs/operators';
    import { HttpClient } from '@angular/common/http';
    import { Observable } from 'rxjs';

    @Injectable()
    export class ServicioService {

        constructor(public http: HttpClient) {
            console.log('goin!');
        }

        goWiki(userInput): Observable<any>{
            return this.http.get('https://www.reddit.com/r/gifs/top/.json?limit=105sort=hot');
        }

app.module.ts


    import { ServicioService } from './servicio.service';
    import { HttpClientModule } from '@angular/common/http';

    imports: [HttpClientModule, BrowserModule, IonicModule.forRoot(), AppRoutingModule, ComponentesModule],
      providers: [
        ServicioService,...

我只是希望能得到一个可观察的东西,以便能够读取它并从中提取特定数据。

查看更多

查看更多

提问者
Ferran Ramírez Martí
被浏览
147
ghybs 2019-07-04 01:59

在Angular中使用Ionic 4,您将不再具有ionViewDidLoad生命周期挂钩。请改用标准的Angular ngOnInit挂钩。

参见https://medium.com/@paulstelzer/ionic-4-and-the-lifecycle-hooks-4fe9eabb2864

生命周期在Ionic 4

[...]

除了ionViewDidLoad(因为它与一样ngOnInit)和两个导航卫兵,Ionic 3的所有Lifecycle钩子仍然可用