我正在尝试从API获取任务,并且返回正确,数据正确无误。
但是当我尝试将其记录到控制台时,它给出了未定义的信息。
这是我的代码:
tasksEvents: Task[];
getTasks() {
this._taskService.getTasks()
.subscribe(
res => { this.tasksEvents = res },
err => console.error(err)
)
}
ngOnInit(): void {
this.getTasks();
console.log(this.getTasks(); <------ Undefined
}
正如我所说,它可以很好地返回我想要的数据,但是我想用getTasks()
做更多的事情。
这是task.service.ts
中的代码:
taskUrl = 'http://127.0.0.1:8000/api/tasks';
getTasks() {
return this._http.get<Task[]>(this.taskUrl);
}
答案 0 :(得分:0)
getTasks()
是异步的,如果不使用诸如subscribe()
之类的机制或诸如tap/do
之类的其他RxJS运算符来进行日志记录之类的副作用,您将无法注销基础发出的值。更新您的代码,以使getTasks()
返回可观察值(删除subscribe()
),并在subscribe()
中使用ngOnInit()
来设置class属性的值并注销该值(如果需要):
tasksEvents: Task[];
getTasks() {
return this._taskService.getTasks();
}
ngOnInit(): void {
this.getTasks().subscribe(res => {
this.tasksEvents = res;
console.log(res);
console.log(this.tasksEvents);
});
}
希望有帮助!