azure nodejs sdk 的 wait() 函数
wait() function for azure nodejs sdk
是否有 wait() 函数可用于 azure nodejs SDK,就像 python SDK 所具有的一样。
下面是我的 python 代码,用于在 azure
中启动虚拟机
async_vm_start = compute_client.virtual_machines.start(group_name, vm_name)
async_vm_start.wait()
所以我的整个程序在这里等待,直到 VM 完全启动并继续。
下面是我启动虚拟机的 nodejs 代码
clientCompute.virtualMachines.start(resourceGroupName, vmName, function(err, result) {
if (err) console.log(err);
else console.log(result);
})
这里我的程序不等待,只是继续进行,即使在幕后 VM 仍在启动过程中。
我试过 setTimeout 但它不可靠。那么我的nodejs函数有什么办法可以等到虚拟机完全启动。
提前致谢
start()
函数的第三个参数是一个回调函数,它将在 VM 启动后调用。如果您有以下代码:
console.log('I will be logged first!')
clientCompute.virtualMachines.start(resourceGroupName, vmName, function(err, result) {
console.log('I will be logged after the VM has started!')
})
console.log('I will be logged almost immediately after the first!')
您会看到他们 运行 的顺序。如果在 VM 启动后 有任何事情需要发生,请在该回调中执行。
当然,如果您有很多事情要按顺序完成,并且在回调中有一个回调,那么这可能会很痛苦……它只会变得混乱。我不确定您使用的是哪个版本的 SDK,但您可以使用更新的版本 async/await:
console.log('I will be logged first!')
await clientCompute.virtualMachines.start(resourceGroupName, vmName)
console.log('I will be logged after the VM has started!')
或使用 promisify 将基于回调的函数转换为可以等待的承诺。
是否有 wait() 函数可用于 azure nodejs SDK,就像 python SDK 所具有的一样。 下面是我的 python 代码,用于在 azure
中启动虚拟机async_vm_start = compute_client.virtual_machines.start(group_name, vm_name)
async_vm_start.wait()
所以我的整个程序在这里等待,直到 VM 完全启动并继续。 下面是我启动虚拟机的 nodejs 代码
clientCompute.virtualMachines.start(resourceGroupName, vmName, function(err, result) {
if (err) console.log(err);
else console.log(result);
})
这里我的程序不等待,只是继续进行,即使在幕后 VM 仍在启动过程中。
我试过 setTimeout 但它不可靠。那么我的nodejs函数有什么办法可以等到虚拟机完全启动。
提前致谢
start()
函数的第三个参数是一个回调函数,它将在 VM 启动后调用。如果您有以下代码:
console.log('I will be logged first!')
clientCompute.virtualMachines.start(resourceGroupName, vmName, function(err, result) {
console.log('I will be logged after the VM has started!')
})
console.log('I will be logged almost immediately after the first!')
您会看到他们 运行 的顺序。如果在 VM 启动后 有任何事情需要发生,请在该回调中执行。
当然,如果您有很多事情要按顺序完成,并且在回调中有一个回调,那么这可能会很痛苦……它只会变得混乱。我不确定您使用的是哪个版本的 SDK,但您可以使用更新的版本 async/await:
console.log('I will be logged first!')
await clientCompute.virtualMachines.start(resourceGroupName, vmName)
console.log('I will be logged after the VM has started!')
或使用 promisify 将基于回调的函数转换为可以等待的承诺。