Добавить значение в IndexedDB с помощью Angular 7

Во-первых, я попробовал все вопросы и ответы, связанные с этой темой. Кроме того, я пробовал связанные вопросы и пытался решить их, но безуспешно. Поэтому внимательно прочитайте мой вопрос.

Предпочитать ссылки

ngx-индексированная БД

Поиск, связанный со ссылками

Получение ошибки при добавлении значения в indexedDB с использованием angular2

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

Мой код

app.components.js

import { Component, OnInit } from '@angular/core';
import { NgxIndexedDB } from 'ngx-indexed-db';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  title = 'indexDb-Angular';


  ngOnInit() {
    let  db = new NgxIndexedDB('DVdb', 1);
    db.openDatabase(1, evt => {
      let objectStore = evt.currentTarget.result.createObjectStore('people', { keyPath: 'id', autoIncrement: true });

      objectStore.createIndex('name', 'name', { unique: false });
      objectStore.createIndex('email', 'email', { unique: true });

    });

    db.add('people', { name: 'Sumit', email: '[email protected]' }).then(
      () => {
          // Do something after the value was added
      },
      error => {
          console.info(error);
      }
  );
  }

}

Вы пытались сделать db.add(...) асинхронным после db.openDatabase ?

Sajal 29.05.2019 07:52

как использовать асинхронность в ngOnInit()??

Sumit patel 29.05.2019 08:10

Не на ngOnInit(), но db.openDatabase сделан асинхронным.

Sajal 29.05.2019 08:42
Тестирование функциональных 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
3
5 908
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сделайте openDatabase() асинхронным методом, чтобы он ждал открытия базы данных, прежде чем добавлять значение. Вы можете сделать это асинхронным, используя .then(function() {

ngOnInit() {
    let  db = new NgxIndexedDB('DVdb', 1);
    db.openDatabase(1, evt => {
      let objectStore = evt.currentTarget.result.createObjectStore('people', { keyPath: 'id', autoIncrement: true });

      objectStore.createIndex('name', 'name', { unique: false });
      objectStore.createIndex('email', 'email', { unique: true });

    }).then(function () {
        db.add('people', { name: 'Sumit', email: '[email protected]' }).then(
          () => {
              // Do something after the value was added
          },
          error => {
              console.info(error);
          }
        );
    });
}

да. вы правы. Второй - это необязательный обратный вызов, который при необходимости будет обрабатывать создание объектных хранилищ для этой версии. openDatabase возвращает обещание.

Sumit patel 29.05.2019 08:50

что значит добавленная стоимость?

Sajal 29.05.2019 12:35

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