2017-02-14 16 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を見ることができる約束の配列を作成します(結果)を下部に表示します。それがあなたの機能を呼び出す場所です。 $ qはtestcallback.htmlで定義されていない:65 (匿名)@ testcallback.html:65 testcallback

+0

はあなたのコードは、(約束で)キャッチされない次のエラーにReferenceErrorを得た蘭を見てください。 html:58 10/2/2017 testcallback.html:59 TypeError:data.pushは関数ではありません –

+0

プレーンなjavascriptを使用できますか –

+0

私はvanially jsを使用するように更新し、小さなバグも修正しました。 –

関連する問題