this.data
是json
对象的数组,我只是想尝试找到一种方法来解析各个对象(在这种情况下,只需打印到控制台即可)
方法getData()
中的数据正确。这两种方法都以this.http.put
和this.http.get
this.persistanceData.setData(this.data)
.subscribe((res: any) => { });
this.persistentDataService.getData()
.map(res => res.json())
.subscribe(data => data.map(item => console.log(item)))
答案 0 :(得分:0)
由于您使用的是Angular 2,因此 .pipe()无效,并且导入的版本与 rxjs 6
的早期版本不同您的getData()函数应类似于 persistentDataService 中的内容:
getData(): Observable<any> {
let baseURL = 'http://your-url';
return this.http.get(apiURL)
.map(res => { return res.json(); });
}
您当然应该在服务中导入以下内容:
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
然后,您可以返回到组件并管理返回的Observable并订阅init(例如, ngOnInit ):
ngOnInit() {
this.persistentDataService.getData()
.subscribe(data => console.log(data)))
}
别忘了在构造函数中注入服务,实现OnInit接口并在6以下安装rxjs版本。
答案 1 :(得分:0)
在angular 2+中,我们处理两种类型的ayncs事件。它们是 Promise和Observables 。
Promise可以处理单个异步任务,而Observables可以处理多个事件。
如果要处理多个事件,则需要使用Observables。
在您的提供商上导入可观察的内容,如下所示。
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { Response } from '@angular/http';
根据任务,您可以更改rxjs运算符。
在这种情况下,我们将把响应更改为json。
getData():Observable<any> {
return this.http.get('192.168.1.1:8081/users/user_id=1')
.map((response:Response) =>response.json())
}
上述方法仅将响应返回为 JSON ,而无需在页面或组件中将响应更改为 json()。
任何要使用Observable的查询,请使用此链接https://codecraft.tv/courses/angular/http/http-with-observables