2013-01-08 85 views
1

我想運行兩個查詢到數據庫 - 或任何parse.com使用 - 連續。parse.com連續的數據庫查詢

所以我有:

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

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

第一個查詢只是檢查了一些東西,以確保一切都確定了要求 - 該設備的版本是對等 第二個查詢是實際點整個演習。

因爲我正在使用的功能,我想保持它分開。因爲第一個查詢被要求非常多所有我想使用它的功能。我不想爲每個函數定義它,然後再次調用第二個查詢 - 這是重複的和愚蠢的。

是否有一些優雅的方式 - 即不是在布爾值上拼湊,並在第一個查詢的成功方法中將布爾值設置爲true - 連續運行這兩個查詢?

回答

2

我打破了查詢分成兩個功能,

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

function2(){ 
    var query = Parse.Query("b"); 
    ... 
} 
從功能1成功()我叫函數2內

然後 - (!假設其沒有未定義),或者更確切地說,我打電話給定參數

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){ ... } 

與函數1定義如上。