我是一个尝试学习parse.com api的新手。我可以查询我的数据库,我可以使用成功处理程序中的查询结果。但是,我无法将数据转换为此外的变量。我认为这是因为它正在调用服务器,如果我尝试将它分配给查询函数之外的变量,查询代码在我尝试使用查询函数之外的变量之前没有执行。 / p>
更具体:我如何获得警报(bitOfData);在myObj被分配给bitOfData之后执行。
function getData(){
var bitOfData = "";
var DB = Parse.Object.extend("DB");
var query = new Parse.Query(DB);
query.equalTo("name", "myDatabase");
query.find({
success: function(results){
object = results[0];
//alert(object.id);
var myObj = object.id;
alert(myObj);
bitOfData = myObj;
},
error: function(error){
alert(error.code);}
});
alert (bitOfData);
}
getData();
答案 0 :(得分:1)
问题是代码是异步的,对find(..)
的调用只是让它开始运行。
我最近听到的一个很好的例子就是煮鸡蛋。你打电话给find(..)
就像是煮鸡蛋一样煮沸并设置完成时的警报(success
功能)。一旦煮沸,你就可以在厨房做其他事情了。
如果您希望在完成后发生其他事情,则需要将该代码添加到success
处理程序。
更高级的主题是使用“承诺”,parse.com博客上有一个blog post来解释它。