2014-01-31 5 views
0

Я пытаюсь выяснить, что делает метод setItem от sessionStorage. Насколько я мог бы получить, следующий код возвращает undefined:sessionStorage setItem возвращает true или false

var set = sessionStorage.setItem('foo', 'bar'); 
console.log(set); 

мне нужно знать, если товар был успешно установлен, или если это не удалось. Как я могу достичь этого, не зная возвращения?

+0

Возможный дубликат [Невозможно установить логические значения в LocalStorage?] (http://stackoverflow.com/questions/3263161/cannot-set-boolean-values-in-localstorage) –

ответ

6

Посмотрите на sessionStorage specification.

Эта линия:

setter creator void setItem(DOMString key, DOMString value); 

говорит нам setItem ничего не возвращает. (void это возвращаемое значение, там)


Вы можете проверить, если элемент был установлен так:

if (sessionStorage.getItem('myValue') == null){ 
    // myValue was not set 
}else{ 
    // myValue was set 
} 
+0

Я думаю, что это будет сделано на данный момент ... если предположить, что если что-то пойдет не так, возвращается NULL. – darksoulsong

1

Here представляет собой руководство по 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. */ 
} 
0

Используйте выражение попытка поймать:

try { sessionStorage.setItem('foo', 'bar'); } 
catch(oops) { 
    // maybe no more space, try to free 
    localStorage.removeItem('foo'); 
    sessionStorage.setItem('foo', 'bar'); 
}