0
我是Parse的新手,我刚刚创建了我的第一个Cloud Code,我遇到了Parse.Query
未完成的问题,因为显然response.success()
将被调用得太早。我在哪里把response.success()?
Parse.Cloud.beforeSave("items",function(request,response){
hasPictures = calc(request);
request.object.set("hasPictures",hasPictures);
response.success();
});
function calc(request){
var hasPictures = false;
var userPictureCount = getPictureCountForUser(request.object.get("uniqueIdentifier"));
// something else is being calculated here. removed it so simplify
if(userPictureCount > 0)
hasPictures = true;
return hasPictures;
}
var getPictureCountForUser = function(uniqueIdentifier){
var query = new Parse.Query("items");
if(Parse.User.current()){
a.equalTo("userId", Parse.User.current().id);
}else{
query.equalTo("uniqueIdentifier", uniqueIdentifier);
}
query.find({
success: function(results){
//console.log(results.length + ' pictures found!');
console.log(results);
// return results.length;
response.success(results);
},
error: function(error) {
response.error("Query failed. Error = " + error.message);
}
});
};
我知道我不知何故必须处理Promises。但我不知道如何实现它。
Parse.Query
in getPictureCountForUser()
从来没有真正发现过什么,因为response.success()
位于错误的地方。我需要把它放在哪里,特别是在那个calc()
之间?
这样每个功能都会在发送response.success()
之前等待另一个功能完成。
谢谢!
这似乎做工精细!谢谢。 – Tobias