gpt4 book ai didi

javascript - 具有高级定位功能的 parse.com 推送通知

转载 作者:行者123 更新时间:2023-11-29 18:15:08 25 4
gpt4 key购买 nike

我正在尝试使用 parse.com 从云代码(后台作业)实现高级推送目标服务。我已将日期添加为 Installation 对象中的一个字段。

enter image description here

如果我只有一个条件,即天等于 1,我使用以下代码片段使其工作

var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.equalTo("day",1);

Parse.Push.send({
where: pushQuery,
data: {
"content-available" : "1",
alert : "Message day 1!",
sound : "default"
}}, {
success: function() {
// Push was successful
},
error: function(error) {
// Handle error
}}).then(function() {
// Set the job's success status
status.success("Job finished successfully.");
}, function(error) {
// Set the job's error status
status.error("Uh oh, something went wrong.");
});

引用: Push Notification Java Script guide

我的下一步是向 20 个查询(0 <= 天 < 20)发送通知,并根据天数为每个查询发送消息。调用函数 20 次在我看来很丑陋,我是否可以迭代,每次都在循环中调用 Parse.Push.send 函数?

最佳答案

我使用 Parse.Promise.when(promises) 解决了我的问题

Promise 有点神奇,因为它们让您无需嵌套即可将它们链接起来。如果 promise 的回调返回一个新的 promise,那么第一个将不会被解析,直到第二个被解析。这让您可以执行多项操作,而不会产生您会通过回调获得的金字塔代码。

function scheduleWordsForDay(day)
{
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.equalTo("day",day);
pushQuery.exists("deviceToken");

var promise = new Parse.Promise();

Parse.Push.send({
where: pushQuery,
data: {
alert : "word" + day
}}, { success: function() {
// Push was successful
},
error: function(error) {

}}).then (function(result){
//Marks this promise as fulfilled,
//firing any callbacks waiting on it.
promise.resolve(result);
}, function(error) {
//Marks this promise as fulfilled,
//firing any callbacks waiting on it.
promise.reject(error);
});
return promise;
}

Parse.Cloud.job("scheduleWordNotification", function(request, status)
{
var promiseArray = [];

for (var i = 0; i < 100; i++) {
var promise = scheduleWordsForDay(i);
promiseArray.push(promise);
}
//Returns a new promise that is
//fulfilled when all of the input promises are resolved.
Parse.Promise.when(promiseArray).then(function(result) {
console.log("success promise!!")
status.success("success promise!!");
}, function(error) {
console.error("Promise Error: " + error.message);
status.error(error);
});
});

关于javascript - 具有高级定位功能的 parse.com 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com