【发布时间】:2018-03-21 11:32:41
【问题描述】:
我有一段时间面临这个问题,其中vm_res 未定义
async update_vm_raw_device 函数,函数update_vm_raw_device 运行,但值更新为/mnt/tank/ds/test_file_test_VM_undefined 请注意最后未定义。
async customSubmit(value) {
const path = value.raw_file_directory+ '/' + value.raw_filename+ '_'+ value.name;
const payload = {}
const vm_payload = {}
......SNIP..........
this.ws.call('vm.get_sharefs').subscribe((get_sharefs)=>{
if(!get_sharefs){
this.ws.call('vm.activate_sharefs').subscribe((sharefs)=>{
this.ws.call('vm.create', [vm_payload]).toPromise().then(vm_res => {
// here the assignment happens, but this.vm_res is undefined in
// async update_vm_raw_device function.
this.vm_res = vm_res;
});
}
)
}
else {
this.ws.call('vm.create', [vm_payload]).toPromise().then(vm_res => {
this.vm_res = vm_res;
});
}
},)
await this.update_vm_raw_device(vm_payload, this.vm_res);
}
async update_vm_raw_device(vm_payload: any, vm_res: number) {
vm_payload.path = vm_payload.path+"_"+this.vm_res
await this.ws.call('datastore.update'[vm_payload])]).toPromise().then(
res=>{});}
【问题讨论】:
标签: angular typescript async-await