IndexedDB NotFoundError

Я работаю с IndexedDB, пытаясь сохранить массив. Массив кэшируется, и я вижу это в инструментах разработки, но по какой-то причине получаю следующую ошибку: IndexedDB NotFoundError

Вот код, который вызывает ошибку:

    private async getExistingColumnsFromIndexDb() {
    let doesCacheExist: boolean;
    try {
        doesCacheExist = await this.indexedDbService.getKeyIsValid(SELECTED_COLUMNS_KEY, IndexedDBTableEnum.EMPTY_PLANNING_TASKS);
        if (doesCacheExist) {
            let cachedData: ISelectedColumns[];
            try {
                cachedData = await (this.indexedDbService.getCacheIfValid(SELECTED_COLUMNS_KEY, IndexedDBTableEnum.EMPTY_PLANNING_TASKS) as Promise<ISelectedColumns[]>);
                return cachedData;
            } catch (error) {
                // eventually log this to database - just conosole error for now and return empty array
                console.error('error getting column cache', `error: ${error}`);
                return [];
            }
        } else {
            return [];
        }
    } catch (error) {
        // eventually log this to database - just conosole error for now and return empty array
        console.error('error validating if cache exists', `error: ${error}`);
        return [];
    }
}

public async updateColumns(columns: any[]) {
    let existingColumns: ISelectedColumns[];
    try {
        existingColumns = await this.getExistingColumnsFromIndexDb();
    } catch (error) {
        // eventually log this to database - just conosole error for now
        console.error('failed retrieving existing columns tasks', `error: ${error}`);
    }
    return this.indexedDbService.putOnTable(
        [...columns.map(column => ({ columns: column} as ISelectedColumns)), ...existingColumns],
        CacheDurationEnum.NEVER,
        SELECTED_COLUMNS_KEY,
        IndexedDBTableEnum.EMPTY_PLANNING_TASKS
    );
}

public async getSelectedColumns() {
    return this.getExistingColumnsFromIndexDb();
}

Ошибка не появляется, если я не включил SELECTED_COLUMNS_KEY в метод updateColumns. Но я не получаю данные обратно, так как использую ключ в методе выше.

Чтобы получить ответ на этот вопрос, вам необходимо предоставить дополнительную информацию о том, что такое indexedDbService, потому что эта ошибка возникает в этом модуле или в том, как вы используете этот модуль.

Josh 17.03.2019 21:12
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
1
116
0

Другие вопросы по теме