【发布时间】:2021-03-15 12:23:23
【问题描述】:
我的服务中有一个方法,我正在为我的自定义组件下载上下文。问题是,对于我的组件,我得到了一个包含 id 的附件字段。然后我必须使用这个 id 来下载附件并将它们添加到父对象。
这是我的方法:
getComponentContext(componentConfigId: string, diaryInstanceId: string, endpoint: string, inputTypeId: string, UserID?: string) {
return this.apiService.post(`componentinstances/${endpoint}`,
{
ComponentConfigID: componentConfigId,
DairyInstanceID: diaryInstanceId,
InputTypeID: inputTypeId,
UserID
})
.pipe(
switchMap(result => {
if (result.Records && result.Records.length) {
result.Records.forEach(record => {
if (record.Fields) {
const attachmentField = record.Fields.find(rec => rec.Type === 'Attachment');
if (attachmentField) {
const folderDetails = this.documentsApiService.getFileDetailsByFolderID(attachmentField.Value).toPromise();
record.documentsFolder = folderDetails;
}
}
});
}
return result;
}),
retry(2));
}
所以我只想在所有this.documentsApiService.getFileDetailsByFolderID 调用都完成并且record.documentsFolder 具有它们的值时才return result;。有人可以帮我吗?
【问题讨论】:
标签: javascript angular asynchronous async-await