2014-12-04 52 views
0

我有下面的代码。基本上我有3个嵌套解析查询。一个是获得一些“追随者”,对于每个追随者,我得到了一些“想法”,并且对于每个想法我都希望得到这个想法创建者的名字(用户表中的用户)。嵌套的JavaScript查询解析

前两个嵌套查询可以工作,但当我尝试获取用户名称(创意者)时,最后一个嵌套查询不会按顺序执行。该查询被跳过,然后稍后在代码中执行。为什么会发生这种情况?

var iMax = 20; 
       var jMax = 10; 
       var IdeaList = new Array(); 
       var IdeaListCounter = 0; 
       var myuser = Parse.User.current(); 
       var Followers = new Parse.Query("Followers"); 
       Followers.equalTo("Source_User",{__type: "Pointer",className: "_User",objectId: myuser.id}); 

       Followers.find({ 
        success: function(results) { 
         for (var i = 0; i < results.length; i++) { 
          var object = results[i]; 

          var Ideas = new Parse.Query("Ideas"); 
          Ideas.equalTo("objectId_User", {__type: "Pointer",className: "_User",objectId: object.get('Destination_User').id}); 

          Ideas.find({ 
           success: function(results2) { 

            for (i=0;i<iMax;i++) { 
             IdeaList[i]=new Array(); 
              for (j=0;j<jMax;j++) { 
               IdeaList[i][j]=0; 
              } 
            } 

            for (var j = 0; j < results2.length; j++) { 
             var object2 = results2[j]; 
             var ideausername2 = ""; 
             IdeaListCounter++; 

             var ideausername = new Parse.Query("User"); 
             ideausername.equalTo("objectId",object2.get('objectId_User').id); 

             ideausername.first({ 
              success: function(ideausernameresult) { 
               ideausername2 = ideausernameresult.get("name"); 
              } 
             }); 

             IdeaList[IdeaListCounter,0] = object2.get('objectId_User').id + " " + ideausername2; //sourceuser 
             IdeaList[IdeaListCounter,1] = object2.get('IdeaText'); //text 
             IdeaList[IdeaListCounter,2] = object2.get('IdeaImage'); //image 
             IdeaList[IdeaListCounter,3] = object2.get('IdeaLikes'); //likes 
             IdeaList[IdeaListCounter,4] = object2.get('IdeaReport'); //reports 

回答