背景
我有一个Parse的图像数据库。简单地说,我的代码就是这样做的:
用户通过Parse Cloud调用请求图像(“getNewPicture”)。嵌套在我内部检查他之前是否看过任何照片(以及其他要求),如果是,则提供一张特定图片(getSpecifiedPicture)。如果他没有,那么我发送一张新照片(getNewPicture)。
问题:
通过Parse Cloud Code函数调用“getNewPicture”我得到一个错误代码141.奇怪的是它可以通过Android而不是iOS。
我的代码:
Parse.Cloud.define("getNewPicture", function(request, response) {
var SeenPictures = Parse.Object.extend("SeenPictures");
var query = new Parse.Query(SeenPictures);
var username = request.params.username;
var notWantedPics = [];
query.ascending("createdAt");
query.equalTo("username", username);
query.find({
success: function(results) {
for (var i = 0; i < results.length; i++) {
if (results[i].get("likes") == 1 || results[i].get("dislikes") == 1) {
notWantedPics.push(results[i].get("pictureId"));
results.splice(i, 1);
i--;
}
}
if (results != 0) {
getSpecifiedPicture(results[0].get("pictureId"), {
success: function(returnValue) {
response.success(returnValue);
},
error: function(error) {
response.error(error);
}
});
} else {
getNewPicture(username, notWantedPics, {
success: function(returnValue) {
response.success(returnValue);
},
error: function(error) {
response.error(error);
}
});
}
},
error: function() {
response.error(error);
}
});
});
function getSpecifiedPicture(specifiedPic, callback) {
var Pictures = Parse.Object.extend("Pictures");
var pictures = new Parse.Query(Pictures);
pictures.get(specifiedPic, {
success: function(picture) {
callback.success(picture);
},
error: function(error) {
callback.error(error);
}
});
}
function getNewPicture(username, notWantedPics, callback) {
var Pictures = Parse.Object.extend("Pictures");
var pictures = new Parse.Query(Pictures);
pictures.notEqualTo("photographerUserName", username);
pictures.notContainedIn("objectId", notWantedPics);
pictures.ascending("createdAt");
pictures.find({
success: function(results) {
if (results.length > 0) {
var object = results[0];
//Some other fancy stuff
object.save();
callback.success(object);
}
},
error: function(error) {
callback.error(error);
}
});
}
为什么我会收到代码141?任何帮助表示赞赏。
感谢。
答案 0 :(得分:2)
你的回调是一团糟。我重新编写它以遵循更多的承诺链样式。更容易遵循。另外,underscore.js是你的朋友。希望我的想法是正确的。
id | video_id | user_id | like_or_dislike
1 | 2 | 4 | 0
2 | 2 | 5 | 1