将数据从subscribe()传输到Angular 6中的变量

And*_*pes 2 observable angular-services angular

在下面的函数中,console.log(data)返回我的有效负载,但在console.log(this.finalData)中却得到“未定义”。将预订的数据存储到我的this.finalData变量中的最佳做法是什么?

component.ts

getFavorites(){
  this.jobService.getFavoritesFromDB().subscribe((data) =>  { 
   console.log(data)
   this.finalData = data
  });
  console.log(this.finalData)

 }
Run Code Online (Sandbox Code Playgroud)

服务

getFavoritesFromDB(){
    return this.http.get("http://localhost:3000/post");
}
Run Code Online (Sandbox Code Playgroud)

Saj*_*ran 5

您需要将console.log放在中subscribe,因为api的响应是异步产生的

getFavorites(){
  this.jobService.getFavoritesFromDB().subscribe((data) =>  { 
   console.log(data)
   this.finalData = data;
   console.log(this.finalData)
  });
 }
Run Code Online (Sandbox Code Playgroud)