如何让 Angular 编译器在 return 之前等待订阅

How to make the Angular compiler wait the subscription before return

我有一个函数必须 return 一个值并且在其中我有一个订阅,我的问题是 return 行在订阅结束之前正在执行,

testFunc(){
let objectType;
          let moduleId;
          objectType = valueAsString.split('|');
          objectType = objectType[0];
          this.layoutService.moduleIdByType(objectType)
            .toPromise().then(data => {
              moduleId = data;
            });
          return { IsById: true, LinkedModule: moduleId };
}

这里我有 (moduleIdbytype),它正在改变 moduleId 变量的值 我必须在订阅完成后 return 更改 var 的值

您可以使 testFunc() 异步并await订阅。

async testFunc(){
 let objectType;
 let moduleId;
 objectType = valueAsString.split('|');
 objectType = objectType[0];
 const moduleId  = await this.layoutService.moduleIdByType(objectType)
 .toPromise();
 return { IsById: true, LinkedModule: moduleId };
}