返回嵌套在Parse.com之后保存

时间:2015-09-08 15:52:11

标签: javascript parse-platform

据我所知,在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){...}

  });
  }
});

1 个答案:

答案 0 :(得分:2)

afterSave钩子没有响应对象,没有理由尝试返回任何东西。

返回在其他云代码中可以用于将promise传递给调用函数,但是这种情况在afterSave挂钩中是无关紧要的,因为没有调用函数。调用company.save() will return a promise,因为您无法从afterSave挂钩返回任何内容,所以它没用。

关于Bergi提到的内容,由于没有回调,回调被忽略是不可能的。没有办法在Parse的云代码中的其他地方使用afterSave钩子,并且return语句没有意义。

Reference