从异步函数回调Observer填充对象?

时间:2019-01-14 21:53:51

标签: typescript observable

我有A类:

class A {
   public getHeader() {
        return {
          'name': this.getName()
        }
   }

   public  getName() {
         this.teacherClass.getTeachers().subscribe((data) => {
             // return name here;
         });
   }
}

问题在于,当我调用方法A.getHeader()时,它会将具有name属性的填充对象返回为空,导致观察者A.getName()仍未从服务器返回数据。

如何处理这种情况?

1 个答案:

答案 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
});