在ios应用程序中使用javascript承诺

在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')

我需要在ionic中使用以下承诺(ios显然在android上也可以):


你知道怎么做吗?

我使用了延迟,这样你就可以运行一个承诺链,而不是将它们分开。如果调用发生错误,您还需要处理错误情况(两个承诺使用相同的错误函数)。它将拒绝你适当处理的承诺

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));
});