1

我想连续对 db 或 parse.com 使用的任何查询运行两个查询。

所以我有:

var query = Parse.Query("table1");
....

var query2 = Parse.Query("table2");
...

第一个查询只是检查一些东西以确保请求一切正常 - 设备版本正确等。第二个查询是整个练习的实际点。

因为第一个查询被要求提供我正在使用的几乎所有功能,所以我想将它分开。我真的不想继续为每个函数定义它,然后子调用第二个查询 - 这是重复和愚蠢的。

是否有一些优雅的方法——即不使用布尔值并在第一个查询的成功方法中将布尔值设置为 true——连续运行两个查询?

4

1 回答 1

2

我将查询分为两个功能,

function1(){
    var query = Parse.Query("a");
    ...
}

function2(){
    var query = Parse.Query("b");
    ...
}

然后从 function1() 的成功中调用 function2 - 或者更确切地说,我调用给定的参数(假设它不是未定义的!)

function function1(onSuccess){
    var query = Parse.Query("a");
    query.first("c");
    query.find(){
        success : function(){
            doCoolThings();
            if (onSuccess != null){
                 onSuccess(); 
            }
        },
        error: function (){ } 
    }
}

现在我有了一个可重用的组件,我可以在我认为合适的时候使用它!

奖励:如果 function2 需要参数怎么办?

所以!在调用这两者的主函数中,我们有:

Parse.Cloud.define("myCoolFunction",function(request,response){ 
    var onSuccessCall = function(){ function2(request, response); };
    function1(request,response,onSuccessCall);
});

function function2(request, response){ ... }

上面定义的function1。

于 2013-01-08T05:12:26.427 回答