从localStorage检索数据

迈克·M

我正在尝试从localStorage检索一个有效的字符串,但不确定执行顺序。或者,也许我缺少了一些东西。

//content_script.js

function getSize(){
    chrome.extension.sendMessage({method: "getSize"}, function(response){
        size = response.sizeIs; 
    });
    alert(size);
    return size;
}

//background.js

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.method == "getSize")
        sendResponse({sizeIs: localStorage['size']});
});

警报消息为:

undefined
Large

分别。

所以我想我的问题是,为什么变量在sendMessage函数内部起作用,而不在外部起作用?

奥列格

这是因为在您的示例中alert(size);执行之前 size = response.sizeIs;

应该是这样的:

function getSize(callback){
  chrome.extension.sendMessage({method: "getSize"}, function(response){
    size = response.sizeIs; 
    callback(size);
  });
}

并这样称呼:

getSize(function(size) {
  alert(size);
});

代替:

size = getSize();
alert(size);

chrome.extension.sendMessage是异步(非阻塞)方法,这意味着您无法立即获得结果。您必须传递一个回调函数并在内部处理结果

就像setTimeout功能一样尝试执行以下代码:

setTimeout(function() {
  console.log('test 1');
}, 100);
console.log('test 2');

您将进入控制台:

test 2
test 1

在这种情况下test 2立即显示test 1-100ms之后。这就是异步函数/方法的工作方式

在这里您可以阅读有关异步功能的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从JSP检索数据

来自分类Dev

无法检索元数据

来自分类Dev

从php检索数据

来自分类Dev

如何检索以前的localStorage值?

来自分类Dev

检索以某些单词开头的localStorage值

来自分类Dev

从多个模型检索数据

来自分类Dev

检索部分视图数据

来自分类Dev

在localStorage中存储和检索

来自分类Dev

如何检索QSharedMemory数据

来自分类Dev

从IndexedDB检索数据

来自分类Dev

Codeigniter数据检索

来自分类Dev

使用FirebaseDatabase检索数据

来自分类Dev

无法从CloudKit检索数据

来自分类Dev

检索数据时出错

来自分类Dev

Firebase Web检索数据

来自分类Dev

在localStorage中订购数据

来自分类Dev

如何从LocalStorage检索值

来自分类Dev

如何检索window.localStorage.storedparameters?

来自分类Dev

如何检索以前的localStorage值?

来自分类Dev

无法更改从localStorage检索到的对象的属性

来自分类Dev

将数据添加到localStorage并检索它

来自分类Dev

从localStorage检索数值数据

来自分类Dev

我可以为不再存在的URL检索Firefox localStorage数据吗?

来自分类Dev

从localStorage添加和检索阵列

来自分类Dev

在localStorage中存储和检索

来自分类Dev

从$ localstorage检索变量

来自分类Dev

检索localStorage后功能停止工作

来自分类Dev

如何检索存储在 localStorage 中的对象的变量?

来自分类Dev

如何检索 localStorage 中的数据以便我在 axios 请求标头中调用?