我试图弄清楚返回的setItem
方法是什么。sessionStorage
据我所知,以下代码返回undefined
:
var set = sessionStorage.setItem('foo', 'bar');
console.log(set);
我需要知道该项目是成功设置还是失败。我怎么能在不知道回报的情况下做到这一点?
我试图弄清楚返回的setItem
方法是什么。sessionStorage
据我所知,以下代码返回undefined
:
var set = sessionStorage.setItem('foo', 'bar');
console.log(set);
我需要知道该项目是成功设置还是失败。我怎么能在不知道回报的情况下做到这一点?
这一行:
setter creator void setItem(DOMString key, DOMString value);
告诉我们setItem
不返回任何东西。(void
是返回值,那里)
您可以检查该项目是否设置如下:
if (sessionStorage.getItem('myValue') == null){
// myValue was not set
}else{
// myValue was set
}
这是sessionStorage
来自 Mozilla 开发者网络的指南。似乎sessionStorage.setItem(name, value)
没有返回任何东西。
但是,如果您想手动检查,您可以尝试以下操作:
sessionStorage.setItem('make', 'Ford');
/* Returns null if it cannot find the item in sessionStorage. */
if(sessionStorage.getItem('make')) {
/* Session storage set successfully. */
} else {
/* Session storage did not set successfully. */
}
使用 try catch 表达式,因为如果会话已满,该方法会抛出异常,如规范中所述:
try { sessionStorage.setItem('foo', 'bar'); }
catch(oops) {
// maybe no more space, try to free
localStorage.removeItem('foo');
sessionStorage.setItem('foo', 'bar');
}