有没有办法将类的所有对象存储在javascript解析中的全局对象数组中

有没有办法将类的所有对象存储在javascript解析中的全局对象数组中,javascript,parse-platform,Javascript,Parse Platform,下面是代码 Parse.initialize("xx","xx"); var queryGroups = new Parse.Query("Group"); var arr = []; queryGroups.find({ success: function(objects) { for (var i = 0; i < objects.length; i++) { var g = new Object();

下面是代码

Parse.initialize("xx","xx");

var queryGroups = new Parse.Query("Group");
var arr = []; 
queryGroups.find({
       success: function(objects) {
        for (var i = 0; i < objects.length; i++) {
            var g = new Object();
            g["whatsAppGroupName"] = objects[i].get("whatsAppGroupName");
            g["whatsAppGroupDescription"] = objects[i].get("whatsAppGroupDescription");
            g["entryCriteria"] = objects[i].get("entryCriteria");
            g["parent"] = objects[i].get("parent");
            arr.push(g);
        }

        for (var i = 0; i < arr.length; i++) {
            console.log("whatsAppGroupName = " + arr[i].whatsAppGroupName);
        }       
       },
       error: function(error) {
           console.log("An error occured :(");
       }
});
Parse.initialize(“xx”,“xx”);
var queryGroups=newparse.Query(“组”);
var-arr=[];
querygroup.find({
成功:功能(对象){
对于(var i=0;i

现在的问题是,打印到控制台的for循环在find函数内部工作良好,但在find函数外部for循环不工作,似乎数据没有存储在全局数组中。那么,有没有办法将数据存储在全局数组中以便以后使用数据。我在internet和google上搜索过,但找不到更好的解释。

尝试将变量g定义为全局变量:-

var g;
Parse.initialize("HIL42pG8FRAx9AXasyyJAg5nXI6x2IifWh30AX5I","KUKOb5pz4GEbcbGAa8GVQrBQL7ER7DsV6m0PZLOL");

var queryGroups = new Parse.Query("Group");
var arr = []; 
queryGroups.find({
   success: function(objects) {
    for (var i = 0; i < objects.length; i++) {
        g = new Object();
        g["whatsAppGroupName"] = objects[i].get("whatsAppGroupName");
        g["whatsAppGroupDescription"] = objects[i].get("whatsAppGroupDescription");
        g["entryCriteria"] = objects[i].get("entryCriteria");
        g["parent"] = objects[i].get("parent");
        arr.push(g);
    }

    for (var i = 0; i < arr.length; i++) {
        console.log("whatsAppGroupName = " + arr[i].whatsAppGroupName);
    }       
   },
   error: function(error) {
       console.log("An error occured :(");
   }
});
varg;
解析.初始化(“HIL42PG8FRAX9AXASYJAG5NXI6X2IIFWH30AX5I”,“KUKOb5pz4GEbcbGAa8GVQrBQL7ER7DsV6m0PZLOL”);
var queryGroups=newparse.Query(“组”);
var-arr=[];
querygroup.find({
成功:功能(对象){
对于(var i=0;i

完成find调用后检查g的值。

直到今天,在阅读了您的问题之后,我才意识到parse.com这样的服务是存在的

那么,你可能做了类似的事情

...
var arr = [];
queryGroups.find(...);
...
for (var i = 0; i < arr.length; i++) {
    console.log("whatsAppGroupName = " + arr[i].whatsAppGroupName);
}

你怎么知道它不起作用?实际上,整个代码都在脚本标签里面,而不是在函数内部,所以当我在查找调用之外运行for循环时,它不起作用。YUP,但它的异步性,我只是想确保你检查的正确方式。代码>查找()
可能在3秒后还没有完成,或者请求可能没有成功?@SultanBaby我给出了3秒的估计时间。由于这是一个异步调用,所以不确定您在3秒后是否会得到……我们应该始终进行防御设计,在这方面进行估计并不能保证代码的可靠性。是的,谢谢,它在我的网站上起作用DE,但是整个代码在运行for循环时,我猜想for循环是在成功函数之前执行的……@ JAIN,欢迎您。如果它帮助您达到正确的分辨率,请将此标记为答案。当其他人遇到类似的问题时,如您所做的那样,这将有助于他们立即发现这个答案是正确的。并且可以帮助客户找到正确的部分。
...
var arr = [], ready = false;
queryGroups.find({
    success: function(){
        for (var i = 0; i < objects.length; i++) {
            ...
            arr.push(something);
            ...
        }
        ready = true;
    }
    ...
});
...
// check every 100 milisecond if data is ready (i.e. arr has been populated)
setInterval(function(ready){
    if(ready){
        // yes, we've got data - might be 0 data though!
        for (var i = 0; i < arr.length; i++) {
            console.log("whatsAppGroupName = " + arr[i].whatsAppGroupName);
        }
    }
}, 100, ready);