0

我是一个试图学习 parse.com api 的新手。我可以查询我的数据库,我可以在成功处理程序中处理查询结果。但是我无法将数据放入此之外的变量中。我认为这是因为它正在调用服务器,如果我尝试将其分配给查询函数之外的变量,则在我尝试对查询函数之外的变量进行任何操作之前,查询代码尚未执行。

更具体地说:我如何获得警报(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();
4

1 回答 1

1

问题是代码是异步的,调用find(..)只是启动它运行。

我最近听到的一个很好的例子是煮鸡蛋。您的调用find(..)就像将鸡蛋煮沸并在煮熟时设置警报(该success功能)。一旦它沸腾了,你就可以在厨房里做其他事情。

如果您希望在它完成时发生其他事情,那么您需要将该代码添加到success处理程序中。

一个更高级的主题是“promises”的使用, parse.com博客上有一篇关于它的博文对此进行了解释。

于 2013-10-20T22:34:00.907 回答