IONIC 4 + Angular7: ОШИБКА Ошибка: Uncaught (в обещании): TypeError: Невозможно прочитать свойство 'then' из неопределенного - PullRequest
0 голосов
/ 21 мая 2019

Я хочу присвоить результат создания базы данных SQLite переменной базе данных типа SQLiteObject, по этой причине я должен сделать это в блоке «then», но он показывает

ошибка Ошибка ОШИБКА: Uncaught (в обещании): TypeError: Невозможно прочитать свойство 'then' из неопределенного.

Я перепробовал большинство статей об этой ошибке "Ошибка ОШИБКИ: невыполнено (в обещании): Ошибка типа: Не удается прочитать свойство 'then' из неопределенного" но ни один из них не мой ответ

constructor(public http: Http,
    private sqlitePorter: SQLitePorter,
    private storage: Storage,
    private sqlite: SQLite,
    private plateform: Platform) {
    this.databaseReady = new BehaviorSubject(false);
    this.plateform.ready().then(() => {
      this.sqlite.create({
        name: 'developers.db',
        location: 'default',
        })
        .then((db: SQLiteObject) => {
        this.database = db;
        this.storage.get('database_filled').then(val => {
          if (val) {
            this.databaseReady.next(true);
          } else {
            this.fillDatabase();
          }
        })
      })
    })
  }

This is the actual code

this is the error

1 Ответ

0 голосов
/ 22 мая 2019

Вам придется вернуть обещание с первого then.Поскольку вы ничего не возвращаете с первого then, он вернет undefined.Попробуйте что-то вроде этого.

this.plateform.ready().then(() => {
      return this.sqlite.create({
        name: 'developers.db',
        location: 'default',
        })
        .then((db: SQLiteObject) => {
        this.database = db;
        this.storage.get('database_filled').then(val => {
          if (val) {
            this.databaseReady.next(true);
          } else {
            this.fillDatabase();
          }
        })
      })
    })
...