Angular 2 http get no get
Soy nuevo en Angular 2 todavía aprendiendo estoy tratando de golpear una url con una llamada get pero el get doen't parece ir a través incluso en la red del navegador no puedo encontrar que se llama a la url get.
El programa va a ese método de registro de consola por encima y por debajo de esa llamada get pero nada para la llamada get
Mi método de servicio
import { Headers, Http, Response } from '@angular/http';
import { Injectable } from '@angular/core';
import { Persons } from './mock-people';
import { Person } from './person';
import {Observable} from 'rxjs/Rx';
getAllPersons():void{
console.log("Here");
this.http.get(`http://swapi.co/api/people/1`).map((response:Response) => {
console.log(response.json());
response.json();
});
console.log("Comes here 2");
}
Httpmodule importado en app.módulo.ts
Mi captura de pantalla de consola
2 answers
Http utiliza rxjs y es un observable frío/perezoso, lo que significa que debe suscribirse a él para que funcione.
this.http.get(`http://swapi.co/api/people/1`).map((response:Response) => {
console.log(response.json());
response.json();
}).subscribe();
O si desea suscribirse desde otro lugar , debe devolver el http.obtener método como este::
getAllPersons():Observable<any>{
console.log("Here");
return this.http.get(`http://swapi.co/api/people/1`).map((response:Response) => {
console.log(response.json());
response.json();
});
}
Y luego:
getAllPersons().subscribe();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-29 14:10:31
Método debe devolver la respuesta de la llamada api utilizando Observable.
Servicio.cs
import { Http, Jsonp, Response, Headers, RequestOptions } from '@angular/http';
import { Injectable } from '@angular/core';
import { Persons } from './mock-people';
import { Person } from './person';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/forkJoin';
@Injectable()
export class Service {
constructor(private jsonp: Jsonp, private _http: Http) { }
getAllPersons():Observable<any>{
console.log("Here");
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers, method: 'get' });
return this._http.get('http://swapi.co/api/people/' + personId)
.map((res:Response) => {
return <any>res.json();
})
.catch(this.handleError);
console.log("Comes here 2");
}
private handleError(error: Response) {
console.error(error);
return Observable.throw(error.json().error || ' error');
}
}
Las opciones y encabezados son opcionales.
Nota: en lugar de (<any>
) puede definir su tipo de datos o cualquier otro tipo definido en el que obtenga datos en su respuesta.
Gracias.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-29 14:38:00