如何让 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 };
}
我有一个函数必须 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 };
}