解析中嵌套的javascript查询

时间:2014-12-04 19:42:00

标签: javascript

我有以下代码。基本上我有3个嵌套的解析查询。一个是获得一些"粉丝"对于每个粉丝,我都会得到一些"想法"对于每个想法,我想得到那个想法创建者的名字(用户表中的用户)。

前两个嵌套查询有效但当我尝试获取用户名(想法的创建者)时,最后一个嵌套查询不按顺序执行。跳过该查询,然后在代码中执行。为什么会这样呢?

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

1 个答案:

答案 0 :(得分:0)

您的嵌套查询是异步的。

请查看以下答案以获取指导: Nested queries using javascript in cloud code (Parse.com)