Jquery中的延迟队列与Phonegap

时间:2014-03-24 07:45:55

标签: javascript jquery cordova deferred

我正在尝试使用phonegap sqlite访问数据库,并希望创建一个延迟队列。

我如何尝试访问数据库如下

for(i=0,max=elem.length;i<max;i++)
{
   functiontoAccessDB(i);
}

我想确保每次只对数据库进行1次调用,并且所有其他调用都被推迟到第1次调用返回响应。任何见解?

1 个答案:

答案 0 :(得分:0)

SQLitePlugin使用回调模式而不是Deferreds。您将需要将其包装以使用Deferreds。

这样的事情可能有所帮助:

var function functionToAccessDBForPromise = function(i){
    var d = $.Deferred();
    var successCallback = function(){
        d.resolve(args);
    };
    var failCallback = function(){
        d.reject(args);
    };
    functiontoAccessDBWithCallbacks(i,successCallback,failCallback)
    return d.promise();
};

functionToAccessDBForPromise将返回一个可用于排队的promise对象。