据我所知,在AfterSave中,没有“回复”。此外,在afterSave之后,你不会“返回”。
鉴于此,请注意我从同事那里找到的以下代码。请注意,同事在查询中“返回”了company.save。
return company.save();
似乎错了。但我错过了什么吗?是否有一些理由应该从嵌套成功函数中返回?显而易见的是我缺少或不知道的事情?
Parse.Cloud.afterSave("TableName", function(request)
{
var mysteryState = request.object.get("state");
var club = request.object.get("club");
if (mysteryState == "specialState")
{
console.log(">>> specialState handling." );
var query = new Parse.Query("Members");
query.equalTo("club", club);
query.count({
success: function(count)
{
club.set("nb",count);
Parse.Cloud.run("doSomeLongThing",{blah:blah});
console.log(">>> ran long process in the nested query in afterSave");
// mystery code: is it just wrong?
////////return company.save();
// works fine as you'd expect:
company.save();
},
error: function(error){...}
});
}
});
答案 0 :(得分:2)
afterSave钩子没有响应对象,没有理由尝试返回任何东西。
返回在其他云代码中可以用于将promise传递给调用函数,但是这种情况在afterSave挂钩中是无关紧要的,因为没有调用函数。调用company.save()
will return a promise,因为您无法从afterSave挂钩返回任何内容,所以它没用。
关于Bergi提到的内容,由于没有回调,回调被忽略是不可能的。没有办法在Parse的云代码中的其他地方使用afterSave钩子,并且return语句没有意义。