在ios应用程序中使用javascript承诺
我需要在ionic中使用以下承诺(ios显然在android上也可以):在ios应用程序中使用javascript承诺,javascript,ios,angularjs,ionic-framework,promise,Javascript,Ios,Angularjs,Ionic Framework,Promise,我需要在ionic中使用以下承诺(ios显然在android上也可以): 你知道怎么做吗?我使用了延迟,这样你就可以运行一个承诺链,而不是将它们分开。如果调用发生错误,您还需要处理错误情况(两个承诺使用相同的错误函数)。它将拒绝你适当处理的承诺 var promises = []; eventDetails.forEach(function(detail) { var deferred = $q.defer(); new Parse.Query('Attendees')
你知道怎么做吗?我使用了延迟,这样你就可以运行一个承诺链,而不是将它们分开。如果调用发生错误,您还需要处理错误情况(两个承诺使用相同的错误函数)。它将拒绝你适当处理的承诺
var promises = [];
eventDetails.forEach(function(detail) {
var deferred = $q.defer();
new Parse.Query('Attendees')
.equalTo("event_id", detail.id_event)
.count().then(function(number) {
detail["n_requests_received"] = number;
alert("received");
return new Parse.Query('Attendees')
.equalTo("event_id", detail .id_event)
.equalTo("status", "confirmed")
.count();
}).then(function(confirmedCount) {
detail["n_requests_confirmed"] = confirmedCount;
deferred.resolve('I have resolved this promise');
}, function(err) {
console.error(JSON.stringify(err));
deferred.reject('Error: ' + JSON.stringify(err));
});
promises.push(deferred.promise());
});
$q.all(promises).then(function(res) {
// completed all promises w/ no errors
}, function(err) {
console.error(JSON.stringify(err));
});
不工作。我认为=>是ES6符号,因此在ionic中不被识别。你知道如何用then替换第一行中的=<吗?编辑了我的答案。我以为你在爱奥尼亚和使用ES7的时候有点像这样。它不使用像这样的常规承诺,您必须使用$q棱角样式作为承诺。
var promises = [];
eventDetails.forEach(function(detail) {
var deferred = $q.defer();
new Parse.Query('Attendees')
.equalTo("event_id", detail.id_event)
.count().then(function(number) {
detail["n_requests_received"] = number;
alert("received");
return new Parse.Query('Attendees')
.equalTo("event_id", detail .id_event)
.equalTo("status", "confirmed")
.count();
}).then(function(confirmedCount) {
detail["n_requests_confirmed"] = confirmedCount;
deferred.resolve('I have resolved this promise');
}, function(err) {
console.error(JSON.stringify(err));
deferred.reject('Error: ' + JSON.stringify(err));
});
promises.push(deferred.promise());
});
$q.all(promises).then(function(res) {
// completed all promises w/ no errors
}, function(err) {
console.error(JSON.stringify(err));
});