我想存储chrome.storage
个ID。我正在使用INSERT_OR_REMOVE("blocked",12)
从数据库中添加或删除12
。问题是它正在异步工作。我想做的就是在之后使用colorize
函数。我该怎么存档?
function INSERT_OR_REMOVE(table, id) {
if (isNaN(id))
return;
var parsed = parseInt(id);
chrome.storage.local.get(table, function (data) {
if (data[table] == null)
data[table] = [];
if (!data[table].includes(id))
data[table].push(id);
else
data[table].remByVal(id);
chrome.storage.local.set(data);
});
}
function colorize() {
chrome.storage.local.get("blocked", function (data) {
var buttons = $("div.base-btn").closest("table");
for (i = 0; i < buttons.length; i++) {
var id = $(buttons[i]).attr("data-id");
if (data["blocked"].includes(id))
$(buttons[i]).parent().addClass('blocked');
else
$(buttons[i]).parent().removeClass('blocked');
}
});
}
答案 0 :(得分:0)
Chrome StorageArea.set()
接受在成功/失败时运行的回调函数。它与您传递给chrome.storage.local.get(table, callbackFunction)
您只需要添加colorize
作为要在完成设置时运行的回调:
chrome.storage.local.set(data, colorize)