2017-02-14 10 views
0

Я хочу получить все значение 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 пожалуйста см –

ответ

0

Там больше людей здесь, то просто Фрэнк ... иногда. Я немного скорректировал ваш код, чтобы помочь мне разобраться в вашей проблеме, и я настоятельно рекомендую вам изучить, как работают обещания. Без особого идти здесь то, что я был в состоянии придумать:

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: $ д не определен testcallback.html: 65 (анонимно) @ testcallback.html: 65 testcallback. html: 58 10/2/2017 testcallback.html: 59 Uncaught (в обещании) TypeError: data.push не является функцией –

+0

Можете ли вы использовать простой javascript –

+0

Эй, я обновил, чтобы использовать vanial js, а также исправил небольшую ошибку. –