迭代地从chrome.storage中读取和处理对象

时间:2016-12-13 13:13:38

标签: javascript google-chrome asynchronous google-chrome-storage

我使用增加的键“0”,“1”,“2”等将blob对象存储在chrome.storage.local中。对象的数量不固定。从“0”开始迭代地读取和处理它们的最佳方法是什么? (在没有处理上一个对象之前,我无法读取下一个对象。)

我知道可以使用此代码获取所有对象:

chrome.storage.local.get(null, function(items) {
    //handle items
});

但在我的情况下,可能会有很多blob文件,我不想一次在内存中处理它们。

1 个答案:

答案 0 :(得分:1)

所以你只需要一个简单的循环,当你完成后,它会加载网络项目。简单队列类型的系统。

(function() {

    var ind = 0;
    function getNextItem() {
        var data = chrome.storage.local.get("key" + ind, processItem);
        ind++;
    }

    function processItems(items) {

        if(!items) return;

        //do stuff here when done call next 

        getNextItem(); // call this whenever your processing is done

    }

    getNextItem();

}());