我在Javascript中遇到Parse问题。我只是试图遍历我在数组中的对象列表。如果imageURL与Parse中的匹配,则不执行任何操作。如果它们不是数组中的imageURL,则在Parse中,然后将该行添加到Parse。
我认为我的问题是同步性。它目前将同一行(同名,imageURL和fbURL)多次保存到Parse。基本上保存一行,重复70次。
for (var i = 0; i < listobjects.length; i++) {
objName = listobjects[i]["name"]
objImageURL = listobjects[i]["imageURL"]
objfbURL = listobjects[i]["fbURL"]
console.log("NAME: " + listobjects[i]["name"])
// Check if record is in Parse
var query = new Parse.Query(Recipe);
query.equalTo("imageURL", listobjects[i]["imageURL"]);
query.find({
success: function(results) {
if (results.length > 0) {
// Do nothing. We have a result. Or maybe check if videoURL is present
console.log("Object is already in DB.")
} else {
// Save the new object.
var recipeObject = new Recipe();
recipeObject.save({name: objName, imageURL:objImageURL, fbURL: objfbURL}, {
success: function(object) {
console.log("Object Saved!")
},
error: function(model, error) {
console.log("Error saving object!")
}
});
}
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
}
答案 0 :(得分:1)
更改
for (var i = 0; i < listobjects.length; i++) {
objName = listobjects[i]["name"]
// ...
}
要
listobjects.forEach(function(obj) {
// access obj.name, obj.imageURL
// ...
});
创建一个范围,右边的对象将在find回调中使用。