Parse platform Query+httpRequests=许多承诺无法正常工作

Parse platform Query+httpRequests=许多承诺无法正常工作,parse-platform,httprequest,Parse Platform,Httprequest,我有一个简单的代码:有一个查询,在这个查询中,对于每个项目,我都会做一个httpRequest,这个请求会将数据保存在 我的问题是:如何在完成云代码之前完成所有承诺/请求/保存 var query = new Parse.Query(Readers); query.find({ success: function(readersList) { for(var qi = 0; qi < readersList.length; qi++) { p

我有一个简单的代码:有一个查询,在这个查询中,对于每个项目,我都会做一个httpRequest,这个请求会将数据保存在 我的问题是:如何在完成云代码之前完成所有承诺/请求/保存

var query = new Parse.Query(Readers);
query.find({
    success: function(readersList) {
        for(var qi = 0; qi < readersList.length; qi++) {
            promises.push(Parse.Cloud.httpRequest({
                url: '......',
                success: function(httpResponse) {
                    var Post = Parse.Object.extend("Post");
                    var resultList = httpResponse.data.data.items;
                    for(var hRi = resultList.length; hRi > 0 ; hRi--) {
                        post.save();
                    }
                }
            }));
            break;
        }
        Parse.Promise.when(promises).then(function(){
            response.success("All Readers Done!");
        });
    }
});
提前感谢:

编辑2
我的意图是:在查询之后,迭代这些元素,并为每个元素向提要发出HTTP请求。根据此提要的结果,我将检查该项是否已存在于数据库中,然后保存/更新这些项。

您遇到的问题是,您正在将Parse.Cloud.httpRequest承诺添加到数组中,但没有任何内容等待post.save。您可以将其链接以获得所需的结果:

var promise = Parse.Cloud.httpRequest({
    url: '....'
}).then(function (httpResponse) {
    var Post = Parse.Object.extend("Post");
    var resultList = httpResponse.data.data.items;
    var savePromises = [];
    for(var hRi = resultList.length; hRi > 0 ; hRi--) {
        // not sure what "post" is in this context?
        savePromises.push(post.save());
    }
    // wait for all saves to finish
    return Parse.Promise.when(savePromises);
});
promises.push(promise);

我添加了您共享的代码,但似乎不起作用。似乎我需要使代码同步,这样成功就被称为最后一次。任何在成功后被调用的东西都将被忽略,至少看起来。。。
var promise = Parse.Cloud.httpRequest({
    url: '....'
}).then(function (httpResponse) {
    var Post = Parse.Object.extend("Post");
    var resultList = httpResponse.data.data.items;
    var savePromises = [];
    for(var hRi = resultList.length; hRi > 0 ; hRi--) {
        // not sure what "post" is in this context?
        savePromises.push(post.save());
    }
    // wait for all saves to finish
    return Parse.Promise.when(savePromises);
});
promises.push(promise);