Parse platform 在迭代中解决承诺
我编写了一些代码,可以发送一条短信,也可以在一组电话号码上发送推送通知。然而,在试图避免多次成功/错误的同时,我在找出解决承诺的方法时遇到了一个问题。GuestDigits是一组电话号码。如有任何想法或意见,将不胜感激Parse platform 在迭代中解决承诺,parse-platform,parse-cloud-code,es6-promise,Parse Platform,Parse Cloud Code,Es6 Promise,我编写了一些代码,可以发送一条短信,也可以在一组电话号码上发送推送通知。然而,在试图避免多次成功/错误的同时,我在找出解决承诺的方法时遇到了一个问题。GuestDigits是一组电话号码。如有任何想法或意见,将不胜感激 Parse.Cloud.define('sendOutNotifications', function(request, response) { var owner = request.user; var ownerNumber = owner.get('phone
Parse.Cloud.define('sendOutNotifications', function(request, response) {
var owner = request.user;
var ownerNumber = owner.get('phoneNumber');
var guestlistId = request.params.guestlistId;
var guestDigits = request.params.guestDigits;
var eventName = request.params.eventName;
var promotionTime = request.params.promotionTime;
var firstName = owner.get('firstName');
guestDigits.forEach(function(guestDigit) {
var queryUser = new Parse.Query(Parse.User);
queryUser.equalTo('phoneNumber', guestDigit);
queryUser.find().then(function(result) {
if (result.length > 0) {
Parse.Cloud.run('sendPushNotification', {
user: JSON.stringify(result[0]),
firstName: firstName,
eventName: eventName,
promotionTime: promotionTime
});
} else {
Parse.Cloud.run('sendTextMessage', {
firstName: firstName,
phoneNumber: guestDigit
});
};
});
});
});
您应该在代码中说明循环。每个查询都将返回一个承诺,您可以使用
.then()
块进一步链接该承诺。您将所有这些承诺添加到一个数组中,并在完成循环后,等待所有承诺的实现
Parse.Promise.as().then(function()){
var承诺=[];
forEach(函数(guestDigit){
var queryUser=newparse.Query(Parse.User);
queryUser.equalTo(“电话号码”,guestDigit);
promises.push(queryUser.find().then(函数(结果)){
如果(result.length>0){
返回Parse.Cloud.run('sendPushNotification'{
用户:JSON.stringify(结果[0]),
名字:名字,
eventName:eventName,
promotionTime:promotionTime});
}否则{
返回Parse.Cloud.run('sendTextMessage'{
名字:名字,
电话号码:guestDigit});
}
}));
});
//等待所有的承诺兑现
返回Parse.Promise.when(承诺);
}).然后(函数(){
//成功
},函数(错误){
//错误
}));
您应该在代码中提示循环。每个查询都将返回一个承诺,您可以使用.then()
块进一步链接该承诺。您将所有这些承诺添加到一个数组中,并在完成循环后,等待所有承诺的实现
Parse.Promise.as().then(function()){
var承诺=[];
forEach(函数(guestDigit){
var queryUser=newparse.Query(Parse.User);
queryUser.equalTo(“电话号码”,guestDigit);
promises.push(queryUser.find().then(函数(结果)){
如果(result.length>0){
返回Parse.Cloud.run('sendPushNotification'{
用户:JSON.stringify(结果[0]),
名字:名字,
eventName:eventName,
promotionTime:promotionTime});
}否则{
返回Parse.Cloud.run('sendTextMessage'{
名字:名字,
电话号码:guestDigit});
}
}));
});
//等待所有的承诺兑现
返回Parse.Promise.when(承诺);
}).然后(函数(){
//成功
},函数(错误){
//错误
}));