如何在节点中销毁firebase ref

时间:2014-12-24 20:10:43

标签: node.js firebase

如果我在节点中执行此操作:

console.log('1');
console.log('2');

输出:

1
2

过程结束。

如果我将其更改为:

console.log('1');
var Firebase = require('firebase');
var ref = new Firebase('https://<some-base>.firebaseio.com/');
console.log('2');

输出:

1
2

并继续这个过程。

我认为这是因为ref使这个过程保持活力。我知道我可以使用process.exit,但我宁愿不这样做。我实际上不希望进程退出,我只是想确保我没有内存泄漏问题,我的firebase ref永远存在。一旦我完成它,有没有办法销毁firebase引用?

2 个答案:

答案 0 :(得分:7)

[Firebase工程师]目前,使用new Firebase(...)实例化Firebase客户端将创建一个长期持久连接,使Node.js进程保持活动状态。

对于大量用例而言,这无疑是不理想的,我们还有一些工作要做,以确保在没有未完成的Firebase侦听器或待处理的服务器写入时,该进程可以干净地自动退出,但它是&#39 ;中等/低优先级。我期待一个&#34;修复&#34;将在Q2&#39; 15发布,希望是Q1。

答案 1 :(得分:0)

我在使用tape时找到的一个解决方法是在结束时调用test.onFinish(() => process.exit());。它并不理想,但它似乎完成了直接和测试运行的运行。

示例:

const test = require('tape');

test('Some test', (t) => {
  // test code
});

test('Another test', (t) => {
  // test code
});

test.onFinish(() => process.exit());
相关问题