Я пытаюсь вызвать лямбда-функцию AWS из другой лямбда-функции, используя метод invoke
с типом вызова RequestResponse
, и получить значение, возвращаемое из лямбды.
Когда я вызываю lambda.invoke
с использованием await
обратный вызов по-прежнему вызывается асинхронно.Я хотел бы, чтобы значения, которые мне нужны, были доступны в следующей строке кода, отсюда и синхронное требование.Однако в приведенном ниже коде в журналах я вижу запись «Данные из обратного вызова» перед записью «Данные в обратном вызове» со значением 0 из обратного вызова и правильным значением в обратном вызове.
Если бы кто-нибудь мог помочь мне понять, как это сделать, я был бы очень признателен!Вот код:
async readData() {
let myData = [];
const params = {
FunctionName: "MyFunctionName",
InvocationType: "RequestResponse",
};
await lambda.invoke(params, (error, data) => {
if (error) {
console.log("Got a lambda invoke error");
console.error(error);
} else {
let response = JSON.parse(data.Payload);
myData = JSON.parse(response.body);
console.log("Data in Callback: " + myData.length);
}
});
console.log("Data out of Callback: " + myData.length);
}
Спасибо,
Крис