Библиотека Idb-keyval предоставляет простой и
удобный интерфейс для работы с IndexedDB в браузере. Одной из ключевых
возможностей является метод clear, предназначенный для
полной очистки выбранного хранилища данных. В отличие от удаления
отдельных ключей через delete, clear удаляет
все записи целиком, освобождая память и гарантируя отсутствие оставшихся
данных.
clearimport { clear } from 'idb-keyval';
clear([store]).then(() => {
console.log('Хранилище очищено');
}).catch(err => {
console.error('Ошибка при очистке хранилища:', err);
});
Параметры:
store (необязательный) – объект хранилища
IndexedDB, который нужно очистить. Если не передан, используется
хранилище по умолчанию.Возвращаемое значение: Метод возвращает
Promise, который разрешается после успешного удаления всех
записей. В случае ошибки Promise отклоняется с объектом ошибки.
Когда хранилище не передаётся явно, метод clear работает
с хранилищем по умолчанию. Это упрощает код для типичных случаев, когда
нет необходимости создавать отдельные базы данных или хранилища.
import { set, clear } from 'idb-keyval';
// Добавление данных
set('user', { name: 'Alex', age: 28 });
set('theme', 'dark');
// Очистка всех данных
clear().then(() => console.log('Все записи удалены'));
После выполнения clear все ключи и значения в хранилище
будут удалены, и любые попытки получить данные вернут
undefined.
Idb-keyval позволяет работать с несколькими хранилищами, используя
объект Store. Для очистки конкретного хранилища необходимо
создать экземпляр Store и передать его в
clear.
import { Store, set, clear } from 'idb-keyval';
const customStore = new Store('my-database', 'my-store');
// Добавление данных в пользовательское хранилище
set('session', 'xyz123', customStore);
set('token', 'abcd', customStore);
// Очистка конкретного хранилища
clear(customStore).then(() => console.log('Пользовательское хранилище очищено'));
Такой подход позволяет безопасно управлять данными в нескольких независимых хранилищах внутри одного приложения.
clearАсинхронность Метод работает асинхронно через Promise. Это значит, что операция может быть отложена до момента, когда база данных станет доступна, особенно при больших объёмах данных.
Полная очистка clear удаляет
все записи, включая ключи и значения. Это не фильтрация
по префиксу или диапазону, а именно полное очищение хранилища.
Безопасность и обработка ошибок Возможны ошибки,
связанные с блокировкой базы данных или проблемами доступа.
Рекомендуется всегда использовать catch для обработки таких
случаев:
clear(customStore)
.then(() => console.log('Очищено'))
.catch(err => console.error('Не удалось очистить хранилище:', err));
clear может потребовать значительного времени, так
как IndexedDB выполняет удаление всех объектов в транзакции. В отличие
от удаления отдельных ключей по одному, clear выполняется
быстрее и эффективнее для массовой очистки.clear только когда действительно требуется
удалить все данные хранилища.delete, чтобы сохранить нужные данные.catch,
особенно при работе с нестандартными хранилищами или в многопоточной
среде.Метод clear является мощным инструментом для управления
локальными данными, обеспечивая быстрый и надёжный способ полностью
очистить хранилище в Idb-keyval без сложных операций.
Его правильное применение позволяет создавать чистые и предсказуемые
состояния приложений на стороне клиента.