Ошибка с индексированной базой данных NotFoundError

#angular #typescript #indexeddb

#angular #машинописный текст #индексированная база данных

Вопрос:

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

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

     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. Но я не получаю данные обратно, поскольку я использую ключ в описанном выше методе.

Комментарии:

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