我正在努力让这个云代码功能正常工作,但我不断收到以下错误:
代码:141,消息:“未成功/错误调用”
我肯定是在传递正确的请求对象,所以这不是问题。一切都应该保存正确,但它似乎不喜欢我称之为成功/错误。
这是我的代码:
Parse.Cloud.define("redeemedCustomers", function(request, response) {
Parse.Cloud.useMasterKey();
console.log(request.params.consumersToUpdate);
console.log(request.params.sref);
_.each(request.params.consumersToUpdate, function (b) {
var Referred = Parse.Object.extend("User");
var referralQuery = new Parse.Query(Referred);
referralQuery.equalTo("objectId", b);
referralQuery.first().then(function(newbie){
console.log(newbie);
newbie.set("ref", request.params.sref);
newbie.save({
success: function () {
response.success("Credits were given.");
},
error: function (error) {
response.error(error, "Credits were not given.");
}
});
})
})
})
答案 0 :(得分:3)
这是我提出的解决呼叫成功/错误问题的答案。这也是承诺的一个很好的例子:
Parse.Cloud.define("redeemedCustomers", function(request, response) {
Parse.Cloud.useMasterKey();
var newbiePromises = [];
var createNewbie = function(object) {
var promise = new Parse.Promise();
var Referred = Parse.Object.extend("User");
var referralQuery = new Parse.Query(Referred);
referralQuery.equalTo("objectId", object);
referralQuery.first().then(function(newbie) {
newbie.set("ref", request.params.sref);
promise.resolve(newbie.save())
}, function(error){
promise.reject(error);
});
return promise;
}
_.each(request.params.consumersToUpdate, function(object){
newbiePromises.push(createNewbie(object));
});
Parse.Promise.when(newbiePromises).then(function(){
response.success("It worked.");
}, function(error) {
response.error(error);
});
})
答案 1 :(得分:-1)
您不能多次调用response.success或错误,并且您只能一次执行一定数量的线程。使用_.each(使用者)时,每次执行referralQuery.first()请求时都会生成一个promise。达到限制后,parse将返回错误,因为在返回第一个promise之前可能已达到限制。此外,如果没有消费者,它将永远不会达到响应。