Звонок removeItem()
не возвращает никаких указаний об отказе от любой сортировать (отрывок из a recent editor's draft of the W3C web storage specification, с моим упором):
Метод removeItem(key)
должен привести к тому, что пара ключ/значение с заданным ключом будет удалена из списка, связанного с объектом, если он существует. Если элемент с этим ключом не существует, метод ничего не должен делать.
Следовательно, единственный способ узнать, если ключ был фактическое удаление (в отличие от «ничего не делать» действия во втором предложении выше), чтобы проверить его первым.
Вы почти наверняка использовать явную проверку значения getItem()
возврата против null
(с ===
, конечно), но это не меняет тот факт, что вы не можете обнаружить неисправность с removeItem()
сама 1.
Конечно, если вы беспокоитесь о пересыпая свой код с этими фрагментами, вы вполне в состоянии определить функцию, чтобы сделать тяжелую работу за вас, что-то вроде:
function removeExistingItem(key) {
if (localStorage.getItem(key) === null)
return false;
localStorage.removeItem(key);
return true;
}
, а затем вызвать это с более емким:
if (! removeExistingItem("key"))
console.log("Error");
Это основано на «провал» определяется как ключ не существует (как представляется, определение вы используете в вопросе). В действительности, removeItem()
не может сбой просто потому, что он ничего не сделает в случае, когда элемент не существует (см. Вставку выше).
Спасибо, именно то, что я хотел знать. – novalain