Javascript 未在解析云代码中复制数组

Javascript 未在解析云代码中复制数组,javascript,arrays,parse-platform,Javascript,Arrays,Parse Platform,我在解析云代码时复制数组时遇到问题。在下面的findAllAssociatedBrands函数中,我使用解析查询在成功回调时获取数组。在成功回调时,log语句为:console.log(JSON.stringify(brandList[i]);打印数组元素,然后复制新数组中的所有元素。在for循环之后,log语句将新数组显示为[],其中没有元素。我错过了什么 function findAllAssociatedBrands(beaconObj) { var typeOfBeacon = bea

我在解析云代码时复制数组时遇到问题。在下面的findAllAssociatedBrands函数中,我使用解析查询在成功回调时获取数组。在成功回调时,log语句为:console.log(JSON.stringify(brandList[i]);打印数组元素,然后复制新数组中的所有元素。在for循环之后,log语句将新数组显示为[],其中没有元素。我错过了什么

function findAllAssociatedBrands(beaconObj) {

var typeOfBeacon = beaconObj.get("type");
var beaconBrandRelation = beaconObj.relation("brand");
var query = beaconBrandRelation.query();
var listOfAllBeaconAssociatedBrands = [];

query.find({
    success: function(brandList) {
        for (var i = 0; i < brandList.length; i++) {
            console.log(JSON.stringify(brandList[i]));
            listOfAllBeaconAssociatedBrands[i] = brandList[i];
        }

        console.log(listOfAllBeaconAssociatedBrands);
    },
    error: function(error) {
        console.log("Beacon Brand Relation Error: " + error.code + "  " + error.message);
    }
});

return listOfAllBeaconAssociatedBrands;
 }
功能查找关联品牌(beaconObj){
var typeOfBeacon=beaconObj.get(“类型”);
var beaconBrandRelation=beaconObj.关系(“品牌”);
var query=beaconBrandRelation.query();
var listOfAllBeaconAssociatedBrands=[];
查询.查找({
成功:功能(品牌列表){
对于(变量i=0;i
query.find()是一个异步函数,因此findAllBeaconAssociatedBrands()函数中的最后一行在查询后立即执行。find()so query.find()通常没有足够的时间运行成功回调,因此您必须将“return listOfAllBeaconAssociatedBrands;”与成功回调的结尾联系起来

function findAllAssociatedBrands(beaconObj) {

var typeOfBeacon = beaconObj.get("type");
var beaconBrandRelation = beaconObj.relation("brand");
var query = beaconBrandRelation.query();
var listOfAllBeaconAssociatedBrands = [];

query.find({
    success: function(brandList) {
        for (var i = 0; i < brandList.length; i++) {
            console.log(JSON.stringify(brandList[i]));
            listOfAllBeaconAssociatedBrands[i] = brandList[i];
        }

        console.log(listOfAllBeaconAssociatedBrands);
return listOfAllBeaconAssociatedBrands;
    },
    error: function(error) {
        console.log("Beacon Brand Relation Error: " + error.code + "  " + error.message);
    }
});


 }
功能查找关联品牌(beaconObj){
var typeOfBeacon=beaconObj.get(“类型”);
var beaconBrandRelation=beaconObj.关系(“品牌”);
var query=beaconBrandRelation.query();
var listOfAllBeaconAssociatedBrands=[];
查询.查找({
成功:功能(品牌列表){
对于(变量i=0;i
query.find()是一个异步函数,因此findAllBeaconAssociatedBrands()函数中的最后一行在查询后立即执行。find()so query.find()通常没有足够的时间运行成功回调,因此您必须将“return listOfAllBeaconAssociatedBrands;”与成功回调的结尾联系起来

function findAllAssociatedBrands(beaconObj) {

var typeOfBeacon = beaconObj.get("type");
var beaconBrandRelation = beaconObj.relation("brand");
var query = beaconBrandRelation.query();
var listOfAllBeaconAssociatedBrands = [];

query.find({
    success: function(brandList) {
        for (var i = 0; i < brandList.length; i++) {
            console.log(JSON.stringify(brandList[i]));
            listOfAllBeaconAssociatedBrands[i] = brandList[i];
        }

        console.log(listOfAllBeaconAssociatedBrands);
return listOfAllBeaconAssociatedBrands;
    },
    error: function(error) {
        console.log("Beacon Brand Relation Error: " + error.code + "  " + error.message);
    }
});


 }
功能查找关联品牌(beaconObj){
var typeOfBeacon=beaconObj.get(“类型”);
var beaconBrandRelation=beaconObj.关系(“品牌”);
var query=beaconBrandRelation.query();
var listOfAllBeaconAssociatedBrands=[];
查询.查找({
成功:功能(品牌列表){
对于(变量i=0;i
是的,但成功确实会在某个时间后运行。在这种情况下,它应该填充所有相关品牌的列表并显示出来。是吗?是的,但在“返回listOfAllBeaconAssociatedBrands”的毫秒内,“listOfAllBeaconAssociatedBrands”未填充,只是空的,就像在填充listOfAllBeaconAssociatedBrands时以“var listOfAllBeaconAssociatedBrands=[];”初始化一样,现在已经太迟了,因为到那时执行已经转移到了数百行代码上。是的,但成功确实会在某个时间后运行。在这种情况下,它应该填充所有BeaconassociatedBrands的列表并显示出来。是吗?是的,但在“返回listOfAllBeaconAssociatedBrands”的毫秒内,“listOfAllBeaconAssociatedBrands”未填充,只是空的,就像在填充listOfAllBeaconAssociatedBrands时以“var listOfAllBeaconAssociatedBrands=[];”初始化一样,现在太迟了,因为到那时执行已经转移到数百行代码上。