gpt4 book ai didi

Angular 2 Http 获取响应示例

转载 作者:太空狗 更新时间:2023-10-29 16:56:24 25 4
gpt4 key购买 nike

在 Angular 2 中从 http get 获取 json 数据的正确方法是什么。我正在使用模拟端点测试一些本地数据,我可以在 http.get() 但我无法在本地分配它或者存在一些时间问题。这是我的简单服务:

import {Injectable} from '@angular/core';
import {Http} from '@angular/http';
import 'rxjs/add/operator/map'; // we need to import this now

@Injectable()
export class MyHttpService {
constructor(private _http:Http) {}

getDataObservable(url:string) {
return this._http.get(url)
.map(data => {
data.json();
console.log("I CAN SEE DATA HERE: ", data.json());
});
}
}

下面是我尝试分配数据的方式:

import {Component, ViewChild} from "@angular/core";

import { MyHttpService } from '../../services/http.service';

@Component({
selector: "app",
template: require<any>("./app.component.html"),
styles: [
require<any>("./app.component.less")
],
providers: []
})
export class AppComponent implements OnInit, AfterViewInit {
private dataUrl = 'http://localhost:3000/testData'; // URL to web api
testResponse: any;

constructor(private myHttp: MyHttpService) {
}

ngOnInit() {
this.myHttp.getDataObservable(this.dataUrl).subscribe(
data => this.testResponse = data
);
console.log("I CANT SEE DATA HERE: ", this.testResponse);
}
}

我可以在 get() 调用中看到我想要的数据,但在调用之后我似乎无法访问它...请告诉我我做错了什么!

最佳答案

这不应该以这种方式工作。当数据到达时,传递给可观察对象的回调被调用。需要访问此数据的代码必须在回调中。

ngOnInit() {
this.myHttp.getDataObservable(this.dataUrl).subscribe(
data => {
this.testResponse = data;
console.log("I CANT SEE DATA HERE: ", this.testResponse);
}
);
}

更新

getDataObservable(url:string) {
return this._http.get(url)
.map(data => {
data.json();
// the console.log(...) line prevents your code from working
// either remove it or add the line below (return ...)
console.log("I CAN SEE DATA HERE: ", data.json());
return data.json();
});
}

关于Angular 2 Http 获取响应示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40205621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com