Я пишу свое первое «настоящее» лямбда-приложение AWS, и мне нужно синхронизировать пару вызовов. Похоже, не существует «синхронизирующих» версий методов, которые я вызываю.
В частности, я хочу позвонить в Dynamo, а затем использовать данные, проанализированные из JSON, для выполнения http-запроса.
После того, как я его настроил, вот мой рабочий динамовский звонок ...
dynamoDb.get(params, function(err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
} else {
url = parse(data);
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
}
});
Затем я вызываю запрос http, используя этот URL ...
http.get(url,function(res){
res.on('error', function(err){
console.log(err);
});
res.on('data',function(d){
console.log("received more chunks");
chunks += d;
});
res.on('end',function(){
console.log("http request complete");
})
}
Кажется, проблема в том, что второй вызов не ждет первого. Я рассмотрел использование async / await, но я не уверен, как я использую те с обратными вызовами обработки ошибок. Примеры, которые я нашел в Интернете, являются либо слишком общими и сложными для понимания, либо конкретными без обработки ошибок.
Есть идеи, как синхронизировать эти два?