无法动态地向数组添加元素

时间:2015-11-03 12:26:45

标签: javascript arrays html5

我正在尝试使用Javascript创建动态数组并将元素推送到它。作为初学者,我遇到了问题。

P.S。我正在获取所有值(使用console.log检查),唯一的问题是我无法将其放入数据库。

以下是我的代码 -

 (function makelist() {
    var listHeaderData =[];
    var listChildData = [];
    var listImagePath = [];
    var nextPageRefLink = ['imageSlider.html','NewsItem_descp_1.html','http://www.yahoo.com'];
    Parse.initialize("XN0sv3fBqB380fCpwohuHAgansghkiDp8MhbyJDs", "xzoETxUUxicHAtdwqbZh65XtTAFaona3a6cC9jSB");
    console.log("Parse Initailized inside javascript");
    var newsFeed = Parse.Object.extend("NewsFeed");
    var query = new Parse.Query(newsFeed);
    query.find ({
        success: function(results) {
            var output ="";
            for(var  i in results) {
                //listHeaderData DATA
                var heading = results[i].get("Heading");
                listHeaderData.push(heading);
                console.log("Header : "+heading);
                //listChildData DATA
                var description = results[i].get("description");
                listChildData.push(description);
                console.log("Description : "+description);
                if(results[i].get("Image")) {
                    var file = results[i].get("Image");
                    //listImagePath URL's
                    var url = file.url();
                    listImagePath.push(url);
                    console.log("Image URL is:"+url);
                }
                console.log("Heading:"+heading);
                console.log("Description:"+description);
            }
        } , error: function(error){
            console.log("Query error :"+error.message);
        }
    }); 
}

问题是没有添加到我上面定义的数组中。我正在使用.push()函数。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

您在哪里使用这些list*变量?

如果您尝试在listHeaderData之后立即访问query.find(),那么在query.find请求完成后,您将永远无法获取数据。这就是你需要在success回调中的for循环后立即检查这些数组的原因。