如何在 parse.com 中从查询返回值

How to return a value from a query in parse.com

本文关键字:查询 返回值 com parse      更新时间:2023-09-26
function getCategory(categoryId){
  var TrainingPackage = Parse.Object.extend("TrainingPackage");
  var query = new Parse.Query(TrainingPackage);
  query.equalTo("category_id", "12asfas234");
  query.find({
  success: function(results) {
      return results; 
    }
  },
  error: function(error) {
    console.error("Error: " + error.code + " " + error.message);
  }
});
console.log(getCategory());
doSomething(getCategory());

1(当我运行上面的代码时,我得到的输出是"未定义的",因为我猜它不会等到返回结果?

如何将查询结果的值保存在函数外部?

2(如果我想根据第一个查询的结果进行任何查询,我该怎么做?如何让doSomething(getCategory(((等待响应?

我已经研究了承诺和回调,但这一切都非常令人困惑!

这种类型的异步活动应该由回调处理。Query.find(( 是一个异步操作。您必须将回调附加到成功事件。所以这个回调只会在 query.find(( 成功完成数据获取后执行。

function getCategory(categoryId,callback){
  var TrainingPackage = Parse.Object.extend("TrainingPackage");
  var query = new Parse.Query(TrainingPackage);
  query.equalTo("category_id", "12asfas234");
  query.find({
  success: function(results) {
  callback(results);
  //return results; 
    }
   },
  error: function(error){
  console.error("Error: " + error.code + " " + error.message);
 }
 });

getCategory(id,function(results){
   console.log(results);
  }));
getCategory(id,function(results){
    doSomething()
   });