我有A类:
class A {
public getHeader() {
return {
'name': this.getName()
}
}
public getName() {
this.teacherClass.getTeachers().subscribe((data) => {
// return name here;
});
}
}
问题在于,当我调用方法A.getHeader()
时,它会将具有name属性的填充对象返回为空,导致观察者A.getName()
仍未从服务器返回数据。
如何处理这种情况?
答案 0 :(得分:1)
在这种情况下,您不能使用订阅。您需要可观察的回报。这就是异步操作的工作方式
class A {
public getHeader() {
return {
'name': this.getName()
}
}
public getName() {
this.teacherClass.getTeachers();
}
}
然后
let a = new A();
a.getHeader().subscribe(data => {
// make your assignment
});