每当此时从真实设备发出http请求(使用rxjs)时,源并且接收到服务中的引用是未定义的。
来自真实设备的Http请求未按预期工作。
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
@Injectable()
export class DbcallService {
constructor(private _http: Http) {}
getData() {
var url = 'https://jsonplaceholder.typicode.com/posts';
this._http.get(url).subscribe(data => {
console.log(data);
});
}
}
发布于 2017-08-29 12:53:38
您必须按如下所示进行更改。
your-provider.ts
import { Injectable } from '@angular/core';
import { Http } from "@angular/http";
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
@Injectable()
export class DbcallService {
constructor(private _http: Http) {
}
getData() {
var url = 'https://jsonplaceholder.typicode.com/posts';
this._http.get(url).map(res => res.json());
}
}
当你调用它的时候,你必须像下面这样做。
my-page.ts
this.myProvider.getData().subscribe(
result => {
},
error => { },
() => { }
);
发布于 2018-06-30 18:56:13
对于Angular 6,请使用HttpClient。
这是可行的:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class DbcallService {
constructor(private _http: HttpClient) {
}
getData() {
var url = 'https://jsonplaceholder.typicode.com/posts';
this._http.get(url).subscribe(data => {
console.log(data);
});
}
}
https://stackoverflow.com/questions/45929939
复制相似问题