访问Node.js中其他promise函数中的firebase防火promise局部变量-避免全局
Access firebase fireproof promise local variables in other promise functions in Node.js- avoid global
下面是访问firebase数据的工作代码。它使用全局变量"Data"数组将其发送到最终回调函数但是我不想声明全局变量那么,我是否可以将数据传递给它之后的每个回调?下面是代码。
var data = {};
getData('myKey', function(){
console.log("myCompleteData: "+ data); //both Id and finalData
});
var getData= function(key,callback) {
return fireproof.child("data").child(key)
.then(CUSTOM_getData)
.then(callback)
}
function CUSTOM_getData(snapshot) {
var id= snapshot.val().id;
data.id= id;
return {
then: function(callback) {
fireproof.child("otherData").child(data.id)
.then(CUSTOM_getSomethingFromId)
.then(callback)
}
};
}
function CUSTOM_getSomethingFromId(snapshot) {
var finalData = snapshot.val().finalData;
data.finalData = finalData;
return {
then: function(callback) {
callback(data);
}
};
}
我是Node.js的新手。所以请告诉我这种方法是否正确:)
工作代码:
var getSomeData = function(key,callback) {
var data = {};
fireproof.authWithCustomToken(nconf.get('config:someToken')).then(function(){
return fireproof.child("data").child(key)
}).then(function(snapshot){
data.id= snapshot.val().id;
return fireproof.child("otherData").child(data.id)
}).then(function(snapshot){
data.finalData = snapshot.val().finalData;
callback(data);
}, function(error){
console.log('Error: '+error);
});
}
相关文章:
- Javascript用函数return替换局部变量
- 每次调用函数时,都要修改Javascript中的局部变量
- 局部变量在闭包中丢失
- 试图将一个局部变量传递给我的ngAside控制器
- jQuery.ajax()访问javascript循环中的beforeEnd局部变量
- 如何使用局部变量创建全局变量
- 如何在单击链接后将局部变量发送到部分呈现
- 定义 JavaScript 类的局部变量
- 创建所有原型函数均可访问的局部变量
- 局部变量的声明
- JavaScript:在调用之前将函数重新分配给局部变量,而不是直接调用并对'这'
- 为什么 Javascript 中的类变量在尝试多次调用它们或将它们分配给局部变量时会消失
- 函数中的局部变量
- 局部变量仍可通过函数访问
- JavaScript和局部变量是不好的做法
- 局部变量在应用 function.call() 后变为全局变量
- 如何创建一个只应用了一些过滤器的局部变量
- 我可以't克服这个错误“;未定义的局部变量或方法`f'"任何原因
- 访问Node.js中其他promise函数中的firebase防火promise局部变量-避免全局
- 如何将局部变量传递给promise done函数