Angular 2 http не получают
Я новичок в Angular 2, все еще изучаю, что пытаюсь попасть в URL-адрес с помощью вызова вызова, но, похоже, вы не можете пройти через даже в сети браузера, я не могу найти, что вызывается URL-адрес.
Программа отправляется на этот метод, используя консоль регистрации выше и ниже, которая вызывает вызов, но ничего для вызова вызова
Мой метод обслуживания
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 в app.module.ts
Моя консоль Экранный снимок
Консоль
Ответы
Ответ 1
Http использует rxjs и является холодным/ленивым наблюдаемым, что означает, что вы должны подписаться на него, чтобы он работал.
this.http.get(`http://swapi.co/api/people/1`).map((response:Response) => {
console.log(response.json());
response.json();
}).subscribe();
Или, если вы хотите подписаться из другого места, вы должны вернуть метод http.get следующим образом::
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();
});
}
а затем:
getAllPersons().subscribe();
Ответ 2
метод должен возвращать ответ вызова api с помощью Observable.
service.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');
}
}
опции и заголовки необязательны.
Примечание: вместо (<any>
) вы можете определить свой тип данных или любой другой определенный тип, в котором вы получите данные в своем ответе.
Спасибо.