假设我有以下工作代码:
const myPackage = require('myPackage');
myPackage.internal_func(parameter).then(console.log);
这将返回一个JSON,例如:
{
a: 'valA',
b: 'valB'
}
如果我只希望将a
的值分配给变量怎么办?
我尝试过:
const myPackage = require('myPackage');
var data = myPackage.internal_func(parameter).a;
console.log(data);
不幸的是,这返回:
undefined
答案 0 :(得分:1)
如果myPackage.internal_func(parameter)
返回承诺,则您需要使用async/await或将函数与then()链接。
使用Then()
const myPackage = require('myPackage');
myPackage.internal_func(parameter).then(data => {
console.log(data.a);
});
使用异步/等待
const async = require('async');
const myPackage = require('myPackage');
const testFunction = async function(){
var data = await myPackage.internal_func(parameter);
console.log(data.a);
}
如果您在函数中使用此代码,请不要忘记在函数声明中包括异步。
答案 1 :(得分:1)
看起来像您的示例Parameters:
IpAddress:
Description: Your IP Address
Type: String
Resources:
SecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Example
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: !Sub '${IpAddress}/24'
返回了Promise,这就是为什么它没有internal_func
属性的原因。
有以下几种选择:
a
// Async/await
(async function(){
const parameter = {}; //some param
const myPackage = require('myPackage');
const { a } = await myPackage.internal_func(parameter);
console.log(a);
})();