我习惯于在Asp.net中使用async/await。现在我需要在ngBootstrap Modal Service中进行多个API调用(4个)。用户将单击一个按钮以打开模态框。第一个API调用获取模态框所需的基本信息。异步的OpenModal()方法被标记为async,第一个API调用使用了async res,如下所示。
this.service.findContent(id).subscribe(
async res => {
//other code
var socialDataResult = await this.getSocialData();
console.log('socialDataResult ', socialDataResult);
//other code
},
async getSocialData() {
let result: SocialData;
this.socialDataService.findSocialData().subscribe(
async res => {
let socialData = new SocialData(res);
console.log('socialData ', socialData);
result = socialData;
return result;
},
err => {
console.log(err);
}
)
return result;
}
我希望代码在调用 getSocialData 后等待返回响应再写入控制台。目前,它会在调用方法下方写入控制台日志,然后才会在被调用的方法中写入控制台日志。调用方法中的控制台日志显示“undefined”。被调用方法中的控制台日志则显示包含所有数据的 SocialData 对象。
同时需要注意的是,当我将鼠标悬停在 await this.getSocialData(); 上时,会得到以下信息。
(method) ContentComponent.getSocialData(): Promise<SocialData>
非常感谢任何帮助。谢谢!