fun*_*len 4 javascript after-save before-save parse-cloud-code parse-server
每当我的对象的单个键的值在解析云代码afterSave
挂钩中发生变化时,我都想发送推送通知。
Parse.Cloud.afterSave("Channel", function(request) {
var channel = request.object
// TODO: check if value of channel key "state" was changed
});
Run Code Online (Sandbox Code Playgroud)
如何检查密钥的值是否state
已更新?
这是我可以从request
对象中获得的所有数据:http : //parseplatform.org/Parse-SDK-JS/api/v1.11.0/Parse.Cloud.html#.TriggerRequest
该线程中建议的解决方案感觉不对:Parse Javascript API Cloud Code afterSave with access to beforeSave values
我知道我可以通过beforeSave
钩子中的脏方法来做到这一点。但是,这对我不起作用。为什么?如果我确实向许多用户发送推送通知,这需要一些时间。接收推送通知的客户端开始从服务器请求更新的频道对象。然而,他们可能会收到旧版本的对象,因为只要beforeSave
尚未完成发送所有推送,通道对象就不会持久保存在数据库中。
小智 6
您可以使用request.original
. 例如:
Parse.Cloud.afterSave("Channel", function(request) {
var channel = request.object;
var channel_orig = request.original;
if (channel.get("status") != channel_orig.get("status")) {
// Send push notification.
}
});
Run Code Online (Sandbox Code Playgroud)
有关 request.original 的文档说明:“如果设置,则为当前存储的对象。” 不过,我不确定在什么情况下会设置它。在我的用例中,它按照上面的代码片段中提供的方式工作。
归档时间: |
|
查看次数: |
1155 次 |
最近记录: |