承诺与嵌套的query.each和parse.save无法正常工作

时间:2016-04-12 13:15:23

标签: javascript parse-platform promise

以下代码用于解析后台作业,并且由于某种原因,代码未按预期顺序运行,并且它似乎正在运行ASYNC并且承诺无法正常工作。如果需要进行任何修改以使代码以顺序方式工作,我感谢您的帮助。

新版本的代码:

Parse.Cloud.job("NewJob", function(request, response) {
Parse.Cloud.run('Count1', {params}).then(function(recCount1)
{
    Query1.equalTo(<cond>);
    return Query1.each(

    function(Record1)
    {

        Record1.save().then(function(saverecord1)
        {
            Parse.Cloud.run('Count2', {params}).then(function(recCount2)
            {
                Query2.equalTo(<cond>);
                Query2.each(

                function(Record2)
                {
                    Record2.save().then(function(saverecord2)
                    {

                        Parse.Cloud.run('Count3', {params}).then(function(recCount3)
                        {
                            Query3.equalTo(<cond>);
                            Query3.each(

                            function(Record3)
                            {
                                Record3.save().then(function(saverecord3)
                                {
                                    //save success;
                                },
                                function(error)
                                {
                                    response.error("Got an error " + error.code + " : " + error.message);
                                }).then(function(complete)
                                {
                                    response.success();
                                })
                            },{useMasterKey: true})
                        },
                        function(error)
                        {
                            response.error("Got an error " + error.code + " : " + error.message);
                        })
                    },
                    function(error)
                    {
                        response.error("Got an error " + error.code + " : " + error.message);
                    })
                },{useMasterKey: true})
            },
            function(error)
            {
                response.error("Got an error " + error.code + " : " + error.message);
            })
        },
        function(error)
        {
            response.error("Got an error " + error.code + " : " + error.message);
        })
    },{useMasterKey: true})
},
function(error)
{
    response.error("Got an error " + error.code + " : " + error.message);
})

});

0 个答案:

没有答案