【发布时间】:2017-11-14 11:34:06
【问题描述】:
我无法使用 REST API 设置简单的 GET 查询。
出于演示目的,我使用了这个 REST 端点: https://jsonplaceholder.typicode.com/posts/1
离开 subscribe 方法的作用域时,似乎所有接收到的数据都丢失了。我遵循了多个教程,还说在不进行类型转换的情况下访问属性时会出错,但它对我来说很好。为什么会这样?
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import * as _ from 'lodash';
@Injectable()
export class TestService {
constructor(private http : HttpClient ) { }
private URI = 'https://jsonplaceholder.typicode.com/posts/1';
o : object;
//Object { userId: 1, id: 1, title: "sunt aut facere repellat provident
//…", body: "quia et suscipit suscipit recusanda…" }
getData(): void
{
this.o = this.http.get(this.URI ).subscribe();
this.http.get<Post>(this.URI ).subscribe(response => {
console.log(response)//shows up
this.o = response;
console.log(this.o);//shows up
} );
console.log(this.o);//undefined
}
}
interface Post{
userId: number;
id : number;
title : string;
body : string;
}
【问题讨论】:
-
您了解您正在异步获取数据吗?
-
这行
this.o = this.http.get(this.URI ).subscribe();有什么用? -
此行可以删除。应该是“this.o = response;”就像在下面的订阅正文中一样。什么说明我看不懂。
标签: angular rest get undefined httpclient