Google chrome extension 如何使异步函数返回布尔值而不是承诺

Google chrome extension 如何使异步函数返回布尔值而不是承诺,google-chrome-extension,Google Chrome Extension,我试图在我的chrome扩展名中的popup.html文件中提取复选框的布尔值。我有这个: var highlightedCheckBoxVal=$(“#highlightedCheckbox”).prop(“选中”); 函数getAsync(valueToGet){ 返回新承诺((解决)=>{ chrome.storage.sync.get(valueToGet,(value)=>{ 决心(价值); 控制台日志(“已解决”); }) }) } //返回对象-我希望它返回true或false $

我试图在我的chrome扩展名中的
popup.html
文件中提取复选框的布尔值。我有这个:

var highlightedCheckBoxVal=$(“#highlightedCheckbox”).prop(“选中”);
函数getAsync(valueToGet){
返回新承诺((解决)=>{
chrome.storage.sync.get(valueToGet,(value)=>{
决心(价值);
控制台日志(“已解决”);
})
})
}
//返回对象-我希望它返回true或false
$(文档).keyup(异步函数(e){
如果(e.keyCode==120){
getAsync(“highlightedCheckBoxVal”)。然后(val=>{
控制台日志(val);
});
}
});
控制台返回一个对象,我希望它返回一个布尔值。我认为这是因为
getAsync
返回了一个承诺,但是如何将该承诺设置为布尔值?

我还尝试记录
val.valueOf()

,正如我们在中看到的那样,回调接收一个包含所有请求的键的对象(您可以请求一个字符串数组),因此解决方案是将键提取为
result[key]

function getAsync(key) {
  return new Promise((resolve) => {
    chrome.storage.sync.get(key, (data) => resolve(data[key]));
  });
}

您的代码看起来是正确的。这个物体看起来像什么?您要检索的布尔值是否存储在对象的属性中?@RoryMcCrossan虽然这有意义,但控制台现在返回未定义。@GrahamBillington这意味着您没有正确保存值,例如常见的错误是没有将键正确设置为
{[keyVariable]:value}
如您所述,我在哪里设置钥匙@沃克索姆?在设置值的代码中。要读取该值,需要先将其写入。该值设置为
$(“#highlightedCheckbox”).prop(“checked”)。我如何“正确”设置它