IndexedDB NotFoundError - PullRequest
       9

IndexedDB NotFoundError

1 голос
/ 06 марта 2019

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

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

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

...