我正在尝试在chrome扩展程序的popup.html
文件中提取复选框的布尔值。我有这个:
var highlightedCheckBoxVal = $("#highlightedCheckbox").prop("checked");
function getAsync(valueToGet) {
return new Promise((resolve) => {
chrome.storage.sync.get(valueToGet, (value) => {
resolve(value);
console.log("resolved");
})
})
}
//returns object - I want it to return true or false
$(document).keyup(async function (e) {
if (e.keyCode == 120) {
getAsync("highlightedCheckBoxVal").then(val => {
console.log(val);
});
}
});
控制台返回一个对象,我希望它返回一个布尔值。我认为这是因为getAsync
返回了一个承诺,但是我怎样才能使那个承诺成为布尔值?
我还尝试了记录val.valueOf()
。
答案 0 :(得分:1)
我们在documentation中看到,回调函数收到一个包含所有请求键的对象(您可以请求一个字符串数组),因此解决方案是将键提取为result[key]
。
function getAsync(key) {
return new Promise((resolve) => {
chrome.storage.sync.get(key, (data) => resolve(data[key]));
});
}