【发布时间】:2020-09-25 17:56:35
【问题描述】:
我正在创建一个从 NodeJS AWS 开发工具包的 EC2.describeInstanceStatus 方法返回数据的函数。这是它的样子:
function getInstanceDetails(): sdk.EC2.DescribeInstancesResult[] {
let instanceDetails: sdk.EC2.DescribeInstancesResult[] = [];
let ec2Query = new sdk.EC2();
ec2Query.describeInstanceStatus(
function (err, data): void {
if (err) console.log(err, err.stack);
else {
instanceDetails.forEach(instance => {
instanceDetails.push(instance);
});
console.log(data);
}
});
return instanceDetails;
}
我发现我的函数返回一个空数组,这似乎是因为它上面的回调在return语句执行之前没有执行完。
虽然我知道这一点,但我不确定如何确保回调函数在返回结果之前完成。
关于如何实现这一点的任何想法?
在此处阅读有关describeInstanceStatus 方法的更多信息:https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeInstanceStatus-property
【问题讨论】:
-
也许,你可以使用内部返回回调,所以无论何时调用,外部函数都可以完成。
标签: node.js typescript amazon-web-services aws-sdk aws-sdk-nodejs