Да, я могу запустить process.exit()
или --exit
с моими тестами mocha, но это кажется неправильным.
У меня есть 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();
Boom.Готово.Теперь я вижу таймер, который не умрет. Как мне это убить?Я попытался посмотреть на этот исходный код, который указывает мне на это маленькое пятно:
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
?