node.js - 未运行 Http 请求不确定是什么问题
问题描述
整晚都在调试,但我不知道为什么我的http请求没有被调用
return getWordDefinition(queryUrl).then(function(responseMsg) {
//Perform some other business logic
},
function(err) {
console.log('Error Getting Definition: ' + err);
});
我试图调用的函数:
function getWordDefinition(queryUrl){
const options = {
method: "GET"
};
return new Promise(function(resolve, reject) {
const request = https.request(queryUrl, options, function(response) {
console.log("STATUS CODE: " + response.statusCode); // <------Not being called
var data;
response.on("data", function(chunk) {
if (!data) {
data = chunk;
} else {
data += chunk;
}
});
response.on("end", function() {
console.log("Data: " + JSON.stringify(data));
resolve("Finished getting data");
});
request.on('error', (e) => {
reject("ERROR ON REQUEST: " + e.message);
});
request.end();
});
});
}
这段代码在我的里面AWS lambda function
,似乎超时了。我正在记录 http 请求的状态代码,但它从未在我的函数中被调用。我做错了什么?
解决方案
您的 Lambda 正在发出 HTTP 请求,并且似乎超时?
以下是 3 个可能的原因,按可能性降序排列:
- 它在 VPC 中运行,并且您没有给 Lambda 提供通往互联网的路线
- HTTP 请求比 Lambda 超时时间长(默认为 3 秒)
- 您的异步/承诺代码有错误
推荐阅读
- django - Django ReST 引发 TypeError
- javascript - 将 SEO 与 React 项目集成
- popup - kivy - 绑定弹出窗口关闭以从另一个小部件实例中运行
- javascript - 如何默认打开 Bootstrap 菜单?
- android-studio - 将 Android Studio 3.0.1 更新到 3.1.3 时出错
- regex - 在捕获组中使用逻辑 OR 将其定义为可选是否安全?
- jquery - 画布没有填满 div
- java - gradle在jaxrs jars上构建冲突
- react-native - 无法在 React Navigation v2 中隐藏 createBottomTabNavigator
- android - Android dagger 依赖循环