GCP Pubsub-Nodejs客户端承诺挂起,客户端冻结,无错误



Promises挂起时没有任何错误,Google的Pub/Sub Node客户端库针对您的项目。

示例:

const { PubSub } = require("@google-cloud/pubsub");
async function start() {
const pubsubClient = new PubSub({ projectId: "my-project-id" });
try {
const [topics] = await pubsubClient.getTopics();
console.log(topics);
} catch (error) {
console.error(error);
}
}
start().catch(console.error);

将不会返回任何错误,也不会显示任何进度。最终客户端在10分钟后超时。不会返回任何主题。发布主题等也是如此。

如果您使用模拟器pubsub进行本地开发,那么您已经设置了PUBSUB_EMULATOR_HOST变量。出于某种原因,它导致了这个问题。使用unset PUBSUB_EMULATOR_HOST将其从环境中删除,或从.env文件中删除,然后重新启动服务器。

您可以检查它是否在您的shell中设置了printenv(或从节点应用程序运行exec进行检查(

有一个已知的问题,也有相关的Github问题,所以如果你遇到这个答案并有所帮助,请在这里告诉维护人员:https://github.com/googleapis/nodejs-pubsub/issues/339或此处:https://github.com/googleapis/gax-nodejs/issues/208因为这似乎不会影响很多人。

最新更新