在Lambda中,如果使用异步调用方式执行Axios请求,需要手动等待响应。以下是一个示例代码,演示了如何等待Axios响应:
const axios = require('axios');
exports.handler = async (event, context) => {
// 创建一个Promise对象来等待Axios响应
const waitForResponse = new Promise(async (resolve, reject) => {
try {
const response = await axios.get('https://api.example.com/data');
resolve(response.data);
} catch (error) {
reject(error);
}
});
try {
const responseData = await waitForResponse; // 等待Axios响应
console.log(responseData);
return responseData;
} catch (error) {
console.error(error);
throw error;
}
};
在上述代码中,我们创建了一个Promise对象waitForResponse
来等待Axios响应。在Promise对象内部使用了async/await
来执行Axios请求。然后,在Lambda函数的主体部分,我们使用await
来等待waitForResponse
的结果,以确保Lambda函数在收到Axios响应之前不会结束。
请注意,Lambda函数的处理程序(handler)函数必须被声明为异步函数,以便能够使用await
来等待Axios响应。