【发布时间】:2019-10-09 12:05:46
【问题描述】:
您好,我正在开发一个使用云功能的应用程序。所以问题是我正在使用 Blaze 订阅,并且我正在对 AWS / Azure 服务器进行多个 API 调用。这些电话大部分时间都不会得到解决,执行就会停止。停止我的意思不是超时或什么,停止我的意思是无限期地停止,我不会收到任何错误或超时。它只会停止工作和响应
问题是它在本地模拟器上运行良好,但只要我在服务器上对其进行测试,它就会出现这种行为。
我在尝试对函数进行异步调用时可能遗漏了什么?
有什么帮助吗?
这是代码的主要逻辑: index.js
APIEngine.initialize(payload)
.then(async result => {
new ResourceEngine(result, payload)
.getResourceFromRegions()
.then(resources => {
console.log("signature resources: ", resources);
// new ScanEngine(
// resources.apiEngine,
// resources.response,
// payload.report
// ).run();
})
.catch(err => {
console.log("error ===>", err);
});
})
.catch(err => {
return console.log("ERROR ====>", err);
});
【问题讨论】:
-
转到此 Cloud Function 的 Stackdriver Logging 并检查您是否在异步调用的“.then”块中的 console.log 之前收到“Function execution takes x ms”日志。如果是这种情况,您的云函数会在异步调用之前终止,
-
@Monroe 是的,
function terminated确实出现在 console.log 的then之前,但问题是有时它也会完全执行
标签: node.js firebase google-cloud-platform async-await google-cloud-functions