<script src="https://cdn.firebase.com/js/client/2.0.6/firebase.js"></script>
<script>
var root_ref = new Firebase('https://jcatest.firebaseio.com')
function other_function() {
// many lines of code here...
var x = {}
x.x()
// many lines of code here...
}
function my_function(snap){
other_function()
}
root_ref.once('value', my_function)
</script>如果我把上面的代码放在html文件中并用Chrome打开它,我在控制台中看到的都是“未定义的TypeError:未定义不是函数. firebase:26”
在Firefox中,我看到了实际的错误消息:
"TypeError: x.x不是函数. temp.html:8“
为什么我在Chrome中看不到正确的错误信息?
这是Chrome缺陷吗?火药库窃听器?还是我做错什么了?
这对我来说是个大问题,因为我的回调中有很多代码,而firebase基本上是在说,“哪里有错误。”不是很有帮助。
发布于 2015-03-10 07:49:08
这个问题在FirebaseJS版本2.0.6上是可重复的。使用Firebase 2.2.2,两种浏览器都正确地报告了错误和完整的堆栈跟踪。
发布于 2014-12-13 02:01:29
在Firebase客户端中,Firebase.DataSnapshot对象没有方法value(),但是有一个val()方法,这可能就是您要寻找的方法。
有关更多信息,请参见DataSnapshot文档。
我怀疑浏览器没有给出相关的错误行,因为错误发生在匿名函数中,但这只是猜测。
发布于 2015-02-03 01:39:27
如果将回调包装为零ms setTimeout调用,则会得到回溯。不知道为什么这是必要的。
root_ref.once('value', function(){ setTimeout(my_function) })
https://stackoverflow.com/questions/27454413
复制相似问题