我正在使用带有Typescript的Angular框架创建一个Intranet Web应用程序。
应用程序需要使用客户端的计算机,因此我实现了一些使用ActiveX技术调用的COM功能(我们使用Internet Explorer,因此工作正常)。
我有两个功能:
openApp - 将文件从服务器复制到本地计算机
getInstalledVersion - 从文件的本地傻瓜中读取版本信息
我想做的是调用openApp之后我想调用getInstalledVersion(获取新复制文件的版本信息)。显然我想在调用getInstalledVersion之前确保复制过程完成。
这听起来像是在Promise中包装openApp,或者只是在openApp完成后调用getInstalledVersion的其他方法。
有人能指出我如何实现这个目标吗?
以下现有代码:
export class AppService implements IAppService {
private _appServiceClass: any;
constructor() {
this._appServiceClass = new ActiveXObject("BeaufortAppStoreClientProcessing.Services.AppServiceJsonWrapper");
}
openApp(app: IApp, sourceRootFolder: string, destinationRootFolder: string): void {
var jsonApp = JSON.stringify(app);
this._appServiceClass.OpenApp(jsonApp, app.AppType.AppTypeID, sourceRootFolder, destinationRootFolder);
// Want to call getInstalledVersion here after openApp succeeds.
}
getInstalledVersion(app: IApp): string {
var version: string;
var appType = app.AppType.AppTypeID;
switch (appType) {
case 1:
var jsonApp = JSON.stringify(app);
version = this._appServiceClass.GetInstalledVersion(jsonApp).toString();
break;
case 2:
version = "n/a";
break;
default:
version = "Incorrect AppType";
break;
}
return version;
}
}