如何使用firebase使javascript中的局部变量成为全局变量
How to make a local variable a global variable in javascript with firebase?
我想通过firebaseapi提取一个值,并将其作为全局变量,这样我就可以在代码中的其他位置引用它
我希望下面的代码能在我从firebase中提取一个值的地方工作,并且可以在函数之外使用它(http://jsfiddle.net/chrisguzman/jb4qLxtb/)
var ref = new Firebase('https://helloworldtest.firebaseIO.com/');
ref.on('value', function (snapshot) {
var Variable = snapshot.child("text").val();
return Variable;
});
alert(Variable);
我试着用下面的var来定义它,但没有成功(http://jsfiddle.net/chrisguzman/jb4qLxtb/1/)
var ref = new Firebase('https://helloworldtest.firebaseIO.com/');
var MyVariable = ref.on('value', function (snapshot) {
var Variable = snapshot.child("text").val();
return Variable;
});
alert(MyVariable);
我还试图将其定义为一个没有运气的函数:http://jsfiddle.net/chrisguzman/jb4qLxtb/2/
var ref = new Firebase('https://helloworldtest.firebaseIO.com/');
function myFunction() { ref.on('value', function (snapshot) {
var Variable = snapshot.child("text").val();
return Variable;
});};
alert(myFunction());
使用异步编程,您只能在回调内部或从那里调用的函数中使用响应并将数据传递给它。您不能将其填充到全局变量中以试图绕过响应是异步的这一事实。您也不能从异步回调返回值,并期望该值从宿主函数返回。主机函数已经完成执行,稍后将调用回调。
这是一种可行的方法:
var ref = new Firebase('https://helloworldtest.firebaseIO.com/');
ref.on('value', function (snapshot) {
var Variable = snapshot.child("text").val();
alert(Variable);
});
要了解更多关于处理异步响应的选项,您可以阅读这个关于ajax调用的答案,但概念是一样的:如何从异步调用返回响应?。
您应该在$( document ).ready(function()
之外声明全局变量
var MyVariable = '';
$( document ).ready(function() {
var ref = new Firebase('https://helloworldtest.firebaseIO.com/');
MyVariable = ref.on('value', function (snapshot) {
var Variable = snapshot.child("text").val();
return Variable;
});
alert(MyVariable);
});
相关文章:
- 如何使用局部变量创建全局变量
- 局部全局变量问题 - JavaScript
- 局部变量在应用 function.call() 后变为全局变量
- 在d3.js中将局部变量转换为全局变量
- 为局部嵌套函数中的全局变量设置值
- JavaScript局部变量和全局变量混淆
- 如何在 JavaScript 中将局部变量转换为全局变量
- 函数是否像局部变量一样适用于全局变量
- JavaScript 中的全局变量到局部变量
- 为什么我的 JavaScript 提升的局部变量返回未定义,但提升的全局变量返回空白
- 如何在 JavaScript 中检查变量是局部变量还是全局变量
- 为什么全局变量无法访问,即使稍后在代码中定义了局部变量
- Javascript 局部和全局变量在回调函数中失去作用域
- 提升局部变量掩蔽全局变量
- 如何使用firebase使javascript中的局部变量成为全局变量
- 在JavaScript中更改局部变量会影响具有不同名称的原始全局变量
- 用冲突的局部变量重新定义全局变量
- 多个局部变量声明与一个全局变量声明
- 当javascript中的条件变量(全局变量)发生变化时,停止循环
- 如何比较两个事件的结果?(可能使用局部或全局变量?)