Ionic 4 SQLite не может прочитать свойство 'then' неопределенной ошибки

Я пытаюсь создать приложение Ionic 4 и использую SQLite в качестве хранилища. Я установил следующие пакеты:

ionic cordova plugin add cordova-sqlite-storage
npm install --save @ionic-native/sqlite
ionic cordova plugin add uk.co.workingedge.cordova.plugin.sqliteporter
npm install --save @ionic-native/sqlite-porter

Вот мой app.module:

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule, 
HttpClientModule],
  providers: [
    StatusBar,
    SplashScreen,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy,  },
    SQLite,
    SQLitePorter,
    DatabaseService
  ],
  bootstrap: [AppComponent]
})

Вот раздел моей службы DatabaseService, где код выдает ошибку, не работает на .create и возвращает undefined:

initializeDatabase(): void {
    console.log("initializing db");
    // Define the application SQLite database
    this._SQL
      .create({
        name: this._DB_NAME,
        location: "default"
      })
      .then((db: SQLiteObject) => {
        // Associate the database handler object with the _DB private property
        this._DB = db;
        console.log("db created");
      })
      .catch(e => {
        console.log(e);
      });
}

Вот моя ошибка: TypeError: Cannot read property 'then' of undefined at DatabaseService.push../src/app/services/database.service.ts.DatabaseService.initializeDatabase (database.service.ts:49) at new DatabaseService (database.service.ts:33) at _createClass (core.js:21263) at _createProviderInstance (core.js:21225) at resolveNgModuleDep (core.js:21189) at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:21897) at resolveDep (core.js:22268) at createClass (core.js:22148) at createDirectiveInstance (core.js:22019) at createViewNodes (core.js:23245)

Пожалуйста, помогите, я застрял на этом два дня.


person Sksdow Psn    schedule 25.02.2019    source источник
comment
Я просто тестирую свое приложение в браузере с помощью Ionic serve   -  person Sksdow Psn    schedule 25.02.2019
comment
попробуйте протестировать ваше приложение с помощью этой команды ionic cordova run browser -l   -  person Seloka    schedule 25.02.2019
comment
Я все еще получаю ту же ошибку с этой командой AppComponent_Host.ngfactory.js? [sm]:1 ERROR TypeError: Cannot read property 'then' of undefined at DatabaseService.push../src/app/services/database.service.ts.DatabaseService.initializeDatabase (database.service.ts:49) at new DatabaseService (database.service.ts:33) ...   -  person Sksdow Psn    schedule 25.02.2019
comment
вы получаете следующие предупреждения от ваших инструментов разработчика? 1. Собственный: попытался получить доступ к плагину SQLite, но он не установлен 2. Установите плагин SQLite: 'ionic cordova plugin добавить cordova-sqlite-storage, если да, попробуйте протестировать ваше приложение на реальном устройстве, и оно будет работать. Некоторые плагины Cordova предназначены для использования в родной мобильной среде. они НЕ будут работать в среде Cordova, эмулируемой браузером, например, при запуске cordova serve   -  person Seloka    schedule 25.02.2019


Ответы (1)


Выдает ошибку, если вы тестируете его в браузере, потому что Cordova будет работать только на мобильном устройстве. Вам необходимо протестировать приложение на мобильном устройстве или в эмуляторе.

Cordova будет работать только на мобильных платформах, таких как Android и Ios.

person Sivaramakrishnan    schedule 25.02.2019