更新了工作解决方案
我从一个函数开始,该函数从表中选择的所有行中获取信息并将该信息推送到堆栈中以供以后处理。
for (var i = 0; i < this.selectedItems().length; i++) {
var row = this.selectedItems()[i];
let info = this.createFileReqInfo(row.Number(), FileRequestType.AssociatedDoc);
fileReqInfo.push(info);
}
Run Code Online (Sandbox Code Playgroud)
我的问题:createFileReqInfo函数在异步 API 调用可以返回值之前返回,所以我没有在返回对象中获得 userCanView 的正确值。
createFileReqInfo = (reportId: number, fileRequestType: FileRequestType) : any => {
let fileReq = new FileRequest(reportId, fileRequestType);
var uCanView = false;
this.reportModel.getReportSecurity(reportId).done((result) => {
uCanView = result.CanViewReport;
var info: {
fileRequest: FileRequest,
userCanView: boolean
} = {
fileRequest: fileReq,
userCanView: uCanView
}
return info;
});
}
Run Code Online (Sandbox Code Playgroud)
编译器不会让我await在这里使用。关于如何让函数阻塞直到 API …