Javascript 未在解析云代码中复制数组
我在解析云代码时复制数组时遇到问题。在下面的findAllAssociatedBrands函数中,我使用解析查询在成功回调时获取数组。在成功回调时,log语句为:console.log(JSON.stringify(brandList[i]);打印数组元素,然后复制新数组中的所有元素。在for循环之后,log语句将新数组显示为[],其中没有元素。我错过了什么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
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=[];”初始化一样,现在太迟了,因为到那时执行已经转移到数百行代码上。