延迟对象中的元素数组访问

时间:2015-04-21 17:52:54

标签: javascript jquery sql arrays deferred

我如何访问' timestamp'的值?和'用法'在以下示例中,

function executeReadingsQuery(query, postQueryProcessing) {
    var d = new $.Deferred();
    var processing = function(tx, results) {
        var result = [];
        var len = results.rows.length;
        for ( var i = 0; i < len; i++) {
            result.push({
                "timestamp" : moment(results.rows.item(i).timeStamp),
                "usage" : results.rows.item(i).usage
            });

        }
        if (postQueryProcessing) {
            result = postQueryProcessing(result);
        }
        d.resolve(result);
    }; 

    executeQuery(query, processing);
    return d;
}

构建查询字符串的函数随后将调用上述函数

function getReadingsInternal(noOfReadings, postQueryProcessing) {
    var query = "SELECT * from usage ORDER BY timestamp DESC limit " + noOfReadings.toString();
    return executeReadingsQuery(query, postQueryProcessing);
}

然后还有另一个函数可以全局公开整个功能,

getReadings : function(noOfReadings) {
        return getReadingsInternal(noOfReadings);
    }

原始函数(列出的第一个函数)位于名为WNDatabase的变量中 所以我可以使用看起来像这样的调用来访问该函数

WNDatabase.getReadings(30)

但我希望能够全局访问填充延迟对象的result []数组的timestamp和用法值。 似乎不可能做这样的事情

  $.when(WNDatabase.getReadings(30)).done(function() {

        for(var i=0; i<7; i++){

        console.log(this[i].usage);
        }

    });

那么在这次活动中会怎么做?

0 个答案:

没有答案