chrome存储中异步回调的奇怪结果?

时间:2016-08-19 13:52:09

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

我正在创建一个“flashcard”程序,但需要获取表格以及在继续之前将所选单词添加到表中的方法。 相关代码如下,for循环从555开始,因为无论出于什么原因,我开始保存它们的值。 因此,基本上每当用户右键单击选定的单词并按下上下文菜单中的按钮时,它应该将该单词保存在chrome存储中并将其输出到通过下面的代码填充的表中。现在奇怪的部分是作品,并识别本地存储管中有多少单词,但它填充了许多单词的表格,只是最后一个突出显示的单词。

例如,如果我突出显示并选择了3个单词,则只会在表格中显示最后一个单词,但会填充3行。这是storage.sync.get方法中的异步回调的结果,还是我结束时的一个愚蠢的错误?

for (i = 555; i < x; i++) {
    var key = i.toString();
    key = 'a'.key;
    chrome.storage.sync.get(key, function (data) {


        var row = table.insertRow(table.length);
        var cell1 = row.insertCell(0);

        var cell2 = row.insertCell(1);
        cell1.innerHTML = data.key;
        cell2.innerHTML = "definition";
        cell1.contentEditable = true;
        cell2.contentEditable = true;
    });
}

以下是代码的设定部分:

var key = x.toString();
key = 'a'.key;
chrome.storage.sync.set({key : sText}, function(){
}
);
x++;

0 个答案:

没有答案