为什么这个jQuery函数不返回任何内容?



我已经搜索了几个小时尝试修复此jQuery/js代码,但似乎不想返回任何内容。

var result = getURLS(); // this is always blank
function getURLS() {
    var urls = [];
    var URL_record = Parse.Object.extend("URL_record");
    var query = new Parse.Query(URL_record);
    query.equalTo("user", Parse.User.current());
    query.ascending("date");
    query.find({
        success : function(results) {
            var tempURLS = [];
            $.each(results, function(index, record) {
                urls.push(record.get("shortURL") + " " + record.get("longURL"));
            });
        },
        error : function(error) {
        }
    });
    return urls;
}

尽管我从此特定功能创建警报功能:

success : function(results) {
    var tempURLS = [];
    $.each(results, function(index, record) {
        urls.push(record.get("shortURL") + " " + record.get("longURL"));
    });
        alert(urls);
},

它似乎可以提醒您。

有什么想法?

query.find是异步的,您需要在成功函数的内部设置变量,然后调用使用结果的代码。

var result;
getURLS();
function getURLS() {
    var urls = [];
    var URL_record = Parse.Object.extend("URL_record");
    var query = new Parse.Query(URL_record);
    query.equalTo("user", Parse.User.current());
    query.ascending("date");
    query.find({
        success : function(results) {
            var tempURLS = [];
            $.each(results, function(index, record) {
                urls.push(record.get("shortURL") + " " + record.get("longURL"));
            });
            result = urls;
            // call code that uses result here
            processResults(result);
        },
        error : function(error) {
        }
    });
}

我弄清楚了QUERY.GET被困在数小时后是异步的。直到我将其他所有内容剥离出$(function(){});阻止并在控制台上看到查询在块之后发射。最终的想法是将模型和视图加载到Facebook应用程序中,该应用程序还具有异步的INIT函数。我没想到解析查询也会异步。

相关内容

  • 没有找到相关文章

最新更新