2014-09-01 28 views
2

因此,它是我第一次編寫Javascript,因此請耐心等待。我編寫了這個函數,以便在我的Parse.com應用程序中查詢一個類,然後在查詢之後,我想將其中一列(布爾類型)設置爲true。使用Parse Code更改Parse列的值雲Javascript函數

我建立了一個只有7個值的測試類才能測試。

問題:只有三分之七正在改變。每次保存後我必須等待嗎?我知道在Javascript中等待/睡覺是「錯誤的」,但我似乎無法找到解決方案。

在此先感謝!

此外,使用的是iOS /解析的時候,我想檢查布爾值在Objective-C未定義的,我已經嘗試過將其與零/ NULL,拋出了一個異常

Parse.Cloud.define("setYears", function(request, response) { 
var object = new Parse.Query("testClass"); 

object.find({ 
success: function(results) 
{ 
for (var i = 0; i < results.length; i++) { 
    results[i].set("testBool",true);// = true; 
    results[i].save(null, 

     { 
      success:function() 
      { 
       response.success("Updated bool!"); 
      }, 
      error:function (error) 
      { 
       response.error("Failed to save bool. Error=" + error.message); 
      } 

     }); 

}; 

response.success(); 

} 
}) 
}); 
+0

這是令人難以置信很難解決這個:)它在解析一個真正的混亂。請注意,你第一次得到一個「迴應」,將完成一切。你可能想問一下https://groups.google.com/forum/#!forum/parse-developers組... – Fattie 2014-09-01 10:53:29

+0

我有一種感覺,那不是那麼簡單。謝謝你讓我知道。 – RJiryes 2014-09-01 10:58:34

+0

也許你可以幫助另一件事情,我想檢查布爾值是否在Objective-C中未定義,我已經試圖將它與nil/NULL進行比較,拋出異常。你知道任何其他方式嗎? :) – RJiryes 2014-09-01 11:00:51

回答

3

事實證明,如上所述並不難解決。只需要使用saveAll而不是自己保存每個對象。這是正確的解決方案,如果有人需要它:

Parse.Cloud.define("setYears", function(request, response) { 
var object = new Parse.Query("testClass"); 

object.find({ 
success: function(results) 
{ 
for (var i = 0; i < results.length; i++) { 
    results[i].set("testBool",true);// = true; 
} 

Parse.Object.saveAll(results,{ 
success: function(list) { 
    // All the objects were saved. 
    response.success("ok "); //saveAll is now finished and we can properly exit with confidence :-) 
}, 
error: function(error) { 
    // An error occurred while saving one of the objects. 
    response.error("failure on saving list "); 
}, 
}); 


response.success(); 

} 


    }) 

});