如何在节点中销毁firebase ref

如果我在节点中这样做:

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工程师]目前,使用new Firebase(...)实例化Firebase客户端将创build一个长期持久连接,使Node.js进程保持活跃状态​​。

这对于大量的用例来说并不理想,我们在这里做一些工作,以确保在没有未完成的Firebase侦听器或未完成的写入服务器时,进程可以干净地自动退出,但是这是中/低优先级。 我预计到2015年第二季度将有一个“修复”,希望Q1。

我在使用磁带时发现的一种解决方法是调用test.onFinish(() => process.exit()); 最后。 这不是理想的,但它似乎完成工作直接运行,并与testing运行。

例:

 const test = require('tape'); test('Some test', (t) => { // test code }); test('Another test', (t) => { // test code }); test.onFinish(() => process.exit());