I’m using the AWS sdk in my app. The sdk returns promises so I’m using async/await and that’s working. For example, here is a method that calls the describeAlarms api.
'aws.describeAlarms': async function(awsConfig, alarmName){
		console.log('aws.describeAlarms: ' );
		if (Meteor.isServer) {
			const creds = new AWS.Credentials({
				accessKeyId: awsConfig.accessKeyId,
				secretAccessKey: awsConfig.secretAccessKey
			});
			const cloudwatch = new AWS.CloudWatch({ region: awsConfig.region, credentials: creds });
			const params = ( (alarmName === undefined)? {} : { AlarmNames: [alarmName]});
			const result = await cloudwatch.describeAlarms(params).promise();
			console.log('aws.describeAlarms returning... ' );
			return result;
		}
	}
The issue is that I want to make a method that calls other methods. From the docs, it says “If you do not pass a callback on the server, the method invocation will block until the method is complete.”
'aws.describeServices' : async function(awsConfig){
		console.log('aws.describeServices');
		if (Meteor.isServer) {
			//TODO: this doesn't work
			const alarms = Meteor.call('aws.describeAlarms', awsConfig);
			console.log('aws.describeServices returning...');
			return alarms;
		}
	}
Looking at the console logging, I can see it’s not blocking. Doing
const alarms = await Meteor.call('aws.describeAlarms', awsConfig);
Doesn’t work either. What am I missing?