角变量不保存数据

时间:2018-09-28 18:26:27

标签: angular typescript

我有此函数,该函数应返回文章数组,但是在获取数据后,它们将无法保存。这是我的控制台输出。

GetAll() {
  //return this.http.get<Array<Article>>(this.cfg.SERVER);
  this.http.get(this.cfg.SERVER)
    .subscribe((data: Array<Article>) => {
      this.articles = data;
      console.log(1);
      console.log(this.articles);
    } 
  );
  console.log(2);
  console.log(this.articles);
  return this.articles;
}

ConsoleView

2 个答案:

答案 0 :(得分:0)

您对注释的代码正确无误。返回http调用提供的Observable。按照编写的方式,GetAll()方法将始终返回null,因为您在订阅中的回调执行之前返回。

尝试一下:

GetAll(): Observable<Array<Article>> {
  return this.http.get<Array<Article>>(this.cfg.SERVER);
}

如果接收此方法输出的变量具有声明的类型,则需要将其类型更改为Observable<Array<Article>>

答案 1 :(得分:-1)

您也可以按照以下方式尝试。

for(var i=0;i<this.articles.length;i++)
{
 console.log("id:"+this.articles[i].id+"Title:"+this.articles[i].title");
}