如何从childsnapshots所有值到一个变量传递的变量的函数

如何从childsnapshots所有值到一个变量传递的变量的函数

问题描述:

我想要得到的childsnapshot的所有值到一个变量和值传递给这应该创建一个图形功能之前,值, 我不能够收集到所有的值而过,我曾尝试回调,但无法实现它正确如何从childsnapshots所有值到一个变量传递的变量的函数

这里是代码片段::

dbref 
     .once("value") 
      .then 
       (
        function(snapshot) 
         { 
         snapshot.forEach 
          (
          function(childsnapshot) 
          { 
          var data = childsnapshot.val(); 

          var Nameval=data.Name; 

          if(Nameval==namekey) 
          { 
          console.log("Success"); 

          Ikey=childsnapshot.key(); 

var dxRef=new Firebase("https://apraisalstaging.firebaseio.com/EmployeeDB/EApraise/"+Ikey); 

          dxRef 
          .once("value") 
           .then 
           (
            function(snapshot) 
             { 

              snapshot.forEach 
              (

               function(childsnapshot) 
               { 

                var data=childsnapshot.val(); 
                var Rtdate=data.Dateval; 
                console.log(Rtdate); 


               } 
+0

@Frank面包车Puffelen请看看 –

这里有更多的人则只是弗兰克......有时候。我已经调整你的代码一点点帮我找出您的问题,我强烈建议你看看承诺是如何工作的。没有太多去这里的是我能想出:

dbref 
    .once("value") 
    .then(function (snapshot) { 
     var promises = []; 
     snapshot.forEach(function (childsnapshot) { 
      var data = childsnapshot.val(); 
      var Nameval = data.Name; 

      if (Nameval == namekey) { 
       console.log("Success"); 

       Ikey = childsnapshot.key(); 

       var dxRef = new Firebase("https://apraisalstaging.firebaseio.com/EmployeeDB/EApraise/" + Ikey); 

       promises.push(dxRef 
        .once("value") 
        .then(function (snapshot) { 
         var returnData = []; 
         snapshot.forEach(function (childsnapshot) { 
          var data = childsnapshot.val(); 
          var Rtdate = data.Dateval; 
          console.log(Rtdate); 
          returnData.push(Rtdate); 
         }); 
         return returnData; 
        })); 
      } 
     }); 
     return Promise.all(promises); 
    }).then(function(result){ 
     console.log(result); 
    }); 

这将创建一个解决一旦所有的子请求承诺的阵列已经解决了,然后就可以看到的console.log (结果)在底部。这就是你要调用你的函数的地方。

+0

冉代码得到了以下错误未捕获(在承诺)的ReferenceError:$ Q不是在testcallback.html定义:65 (匿名)@ testcallback.html:65 testcallback。 HTML:58 2017年10月2日 testcallback.html:59未捕获的(以诺)类型错误:data.push不是一个函数 –

+0

你可以使用普通的JavaScript –

+0

嘿,我更新为使用vanially JS也固定一个小bug。 –