【发布时间】:2021-11-22 15:14:00
【问题描述】:
我有这些功能:
ngOnInit(): void {
this.getObj();
}
public getObj():any{
this._callAPI1.getList().subscribe(
async res => {
let temp = await this.getPrograms(res.current_subscription_id);
console.log(temp);
},
err => {
}
)
}
public getPrograms(id):any{
this._callAPI2.getPrograms(id).subscribe(
resProgram => {
console.log(resProgram);
return resProgram;
},
err => {
}
)
}
问题在于,在调用getObj 的第一个函数中,当我调用函数getPrograms 时,控制台日志的响应是Undefinded。问题是getPrograms 函数中的控制台返回了一个很好的响应。我尝试添加属性await,但它仍然不起作用。
有什么建议吗??
【问题讨论】:
-
代码是否正确?
getPrograms函数中不应该是this._callAPI2.getPrograms(id_subs).subscribe(...吗?如果参数被称为id_subs,但您传递的是id,这将是未定义的? -
是的,当然.. 我错过了拼写,我编辑了它。
-
如果您在 getPrograms 中订阅,它不会返回任何内容。这就是为什么 switchMap 或类似的运算符可以将可观察操作“链接”在一起的原因。
标签: javascript angular typescript angular8