如下若我把190数值加大,改成200, 会改变 localStorage.getItem(name)的值,可是item.beforescore不能及时返回
var obj = {};
obj.storage = {
// var name= xxucGame.storage.get("lastname");
// console.info( name );
get: function(e){
return localStorage.getItem(e)
},
set: function(key , value , isOverride){ //如果isOverride是true则强制重置
key && (isOverride || this.get(key)===null ) && localStorage.setItem(key ,value);
},
remove: function(e){
e && null !== this.get(e) && localStorage.removeItem(e);
}
};
obj.set = function (name ,score,callback) {
// body...
var before = obj.storage.get(name);
if (before !== null && before < score) { //当上次分数比当前小的时候
obj.storage.set(name , score , true); //强制更新
}else{
obj.storage.set(name , score ,false);
}
var item = {
score : score,
beforescore : before
};
callback(item);
console.log(item.score); //打印当前分数
console.log(item.beforescore); //打印最高分数
console.log(localStorage); //查看localStorage
}
obj.set('hello' , 180 , function(data){ //若我把180数值加大 会改变 localStorage.getItem(name)的值,可是item.beforescore) 不能及时返回
console.info('更新成功' + data);
})
后来我加了一段代码
var before = obj.storage.get(name);
if (before !== null && before < score) { //当上次分数比当前小的时候
obj.storage.set(name , score , true); //强制更新
}else{
obj.storage.set(name , score ,false);
}
before = obj.storage.get(name); //加在这里
var item = {
score : score,
beforescore : before
};
就可以成功同步了,我的理解是更新localStorage了,但是,变量before没能马上获取到,需要手动更新 我的理解正确么? 请大神为我解答下...谢谢!
问题已解决!
原来在第一次获取的时候都是上一次的值,下面更新了,但before根本无法捕捉到...
这几天连续敲代码 ,头脑 乱了,不好意思!!