Parse.com如何获取查询的返回值

时间:2014-06-26 03:50:02

标签: javascript parse-platform

在Parse.Com中,我通常会在函数中获得查询的值。如何解决这个功能?

var TableObject = Parse.Object.extend(TableId);
var qyNewParse = new Parse.Query(TableObject);    
qyNewParse.doesNotExist("last_sync");
qyNewParse.find({
     success: function(results) {


     },
     error: function(error){

     }
});
var something = results.length

例如,如果我想在函数外部获取result.length。如何获取 var something 值?

2 个答案:

答案 0 :(得分:4)

您无法使用函数返回查询结果,因为该函数将始终在查询完成之前返回。您应该为函数提供自己的回调参数,而不是让函数返回值,该参数将在查询完成时调用,如:

function some_cback(callback) {
    var TableObject = Parse.Object.extend(TableId);
    var qyNewParse = new Parse.Query(TableObject);    
    qyNewParse.doesNotExist("last_sync");
    qyNewParse.find({
         success: function(results) {
             callback(results); //call the callback
         },
        error: function(error){
        }
    });
}
//call the function
var something = some_cback(function(response) {
    console.log(response);
});

答案 1 :(得分:0)

如果你在这里使用角度,你可以使用一个示例代码。使用承诺($ q)正确处理,所以基本上你的代码将“等待”,直到承诺如果履行,然后继续前进

runParseFunction = function(param) { var deferred = $q.defer(); Parse.Cloud.run('myParseFunction', { param: param }, { success: function(response) { deferred.resolve(response); }, error: function(error) { deferred.reject(error); } }); return deferred.promise; };

比在外面的任何其他地方打电话:

runParseFunction(param).then(function(response) { console.log(response); });