简单的Firebase数据检索

马特·科迪(Matt Coady)

我只是想执行一个简单的Firebase数据检索。这就是我所拥有的

var fb = new Firebase("https://<my-app>.firebaseio.com");

fb.on('value', function(snapshot) {
  var db = snapshot.val();
  var speed = db['speed'];
 });

console.log(speed);

rnd = Math.floor( Math.random() * 7 );
fb.set({ speed: rnd});

我的问题是速度卡在了fb.on区域内。我如何从那里得到它?

生活

您的代码不会被卡住,您在错误地调用它。

fb.on('value', function(snapshot) {
  var db = snapshot.val();
  var speed = db['speed'];
});

在这里,您将提供一个带有局部变量的回调函数speed该变量可能会正确设置,但是您并未对其进行任何操作。

console.log(speed);

rnd = Math.floor( Math.random() * 7 );
fb.set({ speed: rnd});

设置事件处理程序(fb.on( 'value', ... ))后,该代码直接运行,但是该代码异步运行。该函数可能不仅不会在此时运行,而且在这里您正在访问一个未声明的变量speed,并且由于未声明它是一个自动全局变量window.speed,而不是speed回调函数中的局部变量

移动console.log回调函数内部以在适当的时间执行它。另外,请始终声明变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章