这有效
chrome.storage.local.get('sizePref', function(items) { // Get size preferences from storage
var sizePref2 = items.sizePref.tops; // Set size to a var
console.log("You can get this " + sizePref2)
});
但是,当我尝试使其成为一个函数时
function getSize(itemSize) {
chrome.storage.local.get('sizePref', function(items) { // Get size preferences from storage
var sizePref = items.sizePref.itemSize;
return (sizePref);
});
}
var mySize = getSize(tops);
console.log("This size that u are looking for is " + mySize)
它说“顶部”未定义。
当属性名称位于变量中时,可以使用括号语法。所以,而不是这个:
items.sizePref.itemSize
你用这个:
items.sizePref[itemSize]
此外,您无法从异步回调同步返回值。这种逻辑是错误的。所以,你不能创建一个函数getSize()
这将返回结果。直到稍后一段时间后才能获得结果getSize()
已经回来了。您必须将回调传递给getSize()
或有getSize()
返回一个承诺。
function getSize(itemSize) {
return new Promise(function(resolve) {
chrome.storage.local.get('sizePref', function(items) { // Get size preferences from storage
resolve(items.sizePref[itemSize]);
});
}
getSize("whatever").then(function(result) {
// code that uses the result here
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)