据我了解,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){...}
});
}
});
最佳答案
afterSave Hook 没有响应对象,并且没有理由尝试返回任何内容。
返回在其他云代码中可能很有用,可以将 promise 传递给调用函数,但这种情况在 afterSave Hook 中无关紧要,因为没有调用函数。调用company.save()will return a promise ,并且由于您无法从 afterSave Hook 返回任何内容,因此它毫无用处。
关于 Bergi 提到的,回调不可能被忽略,因为没有回调。 afterSave 钩子(Hook)不可能在 Parse 的云代码中的其他地方使用,并且 return 语句毫无意义。
关于javascript - 嵌套在 Parse.com afterSave 内的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32462191/