gpt4 book ai didi

javascript - 如何告诉 firebase-admin 停止(运行测试时)?

转载 作者:行者123 更新时间:2023-12-03 01:05:50 24 4
gpt4 key购买 nike

是的,我可以在摩卡测试中运行 process.exit()--exit,但这似乎是错误的。

我在维护的一些代码中有 firebase-admin,并且我正在尝试运行摩卡测试,但根据 wtfnode:

wtfnode node_modules/.bin/_mocha --compilers coffee:coffee-script/register

Firebase 负责让我的进程保持打开状态:

- Timers:
- (3300000 ~ 55 min) (anonymous) @ /home/wayne/programming/universe/library/server/node_modu
les/firebase-admin/lib/firebase-app.js:147
- Intervals:
- (45000 ~ 45 s) (anonymous) @ /home/wayne/programming/universe/library/server/node_modules/
firebase-admin/lib/database/database.js:199

非常感谢,Firebase。这令人沮丧。我可以修复数据库部分:

db = app.database();
db.goOffline();

繁荣。完毕。现在我只看到不会死的计时器。我该如何杀死它?我尝试查看该源代码,它向我指出了这个小点:

FirebaseAppInternals.prototype.setTokenRefreshTimeout = function (delayInMilliseconds, numRetries) {
var _this = this;
this.tokenRefreshTimeout_ = setTimeout(function () {
_this.getToken(/* forceRefresh */ true)
.catch(function (error) {
// Ignore the error since this might just be an intermittent failure. If we really cannot
// refresh the token, an error will be logged once the existing token expires and we try
// to fetch a fresh one.
if (numRetries > 0) {
_this.setTokenRefreshTimeout(60 * 1000, numRetries - 1);
}
});
}, delayInMilliseconds);
};

不幸的是,我不确定如何获取该tokenRefreshTimeout_,以便我可以cancelTimer

有没有办法告诉 firebase-admin 我已经完成并且确实需要立即停止,或者我是否坚持 --exit

最佳答案

事实证明,Firebase 文档确实真的含糊不清。 It says

Renders this app unusable and frees the resources of all associated services.

这对我来说听起来像是“渲染您的应用程序,托管在 firebase.com 上,无法使用并释放所有关联服务的资源”

它的真正含义是“使应用程序的这个 Javascript 实例不可用并释放资源......”

因此,为了在摩卡测试中关闭所有内容,您需要使用 app.delete();

它可能看起来像这样:

after(() => {
var app = require('@yourstuff/FirebaseApp');
app.delete();
});

或者它可能看起来有点不同,具体取决于您的需求。

关于javascript - 如何告诉 firebase-admin 停止(运行测试时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com