JavaScript:设置后立即从localStorage读取,应该返回undefined?

时间:2017-07-11 23:04:39

标签: javascript local-storage

我在第一个文件中导入了index.php和index.js文件。从index.js我调用index.php中的一个函数,该函数使用一些字符串设置localStorage.some_item。在同一个文件index.js中,在我调用设置在本地存储中的函数之后,我试图从localStorage.some_item的相同索引获取,但是我得到了未定义!

这是因为写入本地存储需要一些时间,而且无法立即读取它?我尝试推迟,阅读它,但得到了相同的结果。也许由于某种原因,脚本是异步运行的,即使它们不应该......这可能是什么问题?我可以尝试不同的方法来解决它,但我想了解发生了什么。

有没有人遇到过此行为或可以提供帮助? 谢谢

在index.js中:

setDataInLS();
var sSomeData = localStorage.getItem('some_data');
console.log("localStorage.some_data = ",sSomeData);

在index.php中:

function setDataInLS(){
        $.getJSON("getSomeData.php",function(jData){
            console.log(jData);
            var sData = JSON.stringify(jData);
            localStorage.setItem('some_data', sData);
        });
    }

1 个答案:

答案 0 :(得分:0)

在@ Bergi的帮助下,我设法找到了解决方案。等待$ .getJSON并设置为本地存储,直到我从本地存储读取数据。非常感谢你!

对于沮丧的选民,有时候因为疲倦而无法看清楚什么是显而易见的......