Я собираюсь создать приложение Ionic Inventory Management с помощью сканера штрих-кода и SQLite с помощью этого руководства: https://www.techiediaries.com/ionic-cordova-sqlite-barcode-scanner-product-inventory-manager/
Когда я добавляю этот код:
constructor(public sqlite :SQLite) {
console.log('Hello DataServiceProvider Provider')
this.sqlite.create({name: "data.db", location:
"default"}).then((db : SQLiteObject) => {
this.database = db;
}, (error) => {
console.log("ERROR: ", error);
});
... to data-service.service.ts Я получил эту ошибку:
core.js: 19866 Ошибка ОШИБКА: необученная (в обещании): Ошибка типа: невозможно
чтение свойства then для неопределенного TypeError: Невозможно прочитать свойство
«тогда» из неопределенного
на новом DataServiceService (data-service.service.ts: 64)
в _createClass (core.js: 26976)
в createProviderInstance (core.js: 26941)
at resolNgModuleDep (core.js: 26888)
в NgModuleRef .get (core.js: 27996)
at resolNgModuleDep (core.js: 26908)
в NgModuleRef_.get (core.js: 27996)
at resolDep (core.js: 28518)
в createClass (core.js: 28366)
в createDirectiveInstance (core.js: 28186)
at resolPromise (zone.js: 831)
at resolPromise (zone.js: 788)
at zone.js: 892
в ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask
(zone.js: 423)
в Object.onInvokeTask (core.js: 21826)
в ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask
(zone.js: 422)
в Zone.push ../ node_modules / zone.js / dist / zone.js.Zone.runTask (zone.js: 195)
при сливе MicroTaskQueue (zone.js: 601)
Это весь код data-service.service.ts:
import { Injectable } from '@angular/core';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite/ngx';
@Injectable({
providedIn: 'root'
})
export class DataServiceService {
public database: SQLiteObject;
productTable : string = `CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY,
sku TEXT,
barcode TEXT,
title TEXT NOT NULL,
description TEXT,
quantity REAL,
unit VARCHAR,
unitPrice REAL,
minQuantity INTEGER,
familly_id INTEGER,
location_id INTEGER,
FOREIGN KEY(familly_id) REFERENCES famillies(id),
FOREIGN KEY(location_id) REFERENCES locations(id)
);`;
familyTable : string = `CREATE TABLE IF NOT EXISTS famillies (
id INTEGER PRIMARY KEY,
reference VARCHAR(32) NOT NULL,
name TEXT NOT NULL,
unit VARCHAR);`;
locationTable : string = `CREATE TABLE IF NOT EXISTS locations (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL);`;
//Date , Quantity , Unit Cost , Reason (New Stock - Usable Return - Unusable Return ) ,UPC (Universal Product Code ) Comment
transactionTable : string = `CREATE TABLE IF NOT EXISTS transactions (
id INTEGER PRIMARY KEY,
date TEXT,
quantity REAL,
unitCost REAL,
reason VARCHAR,
upc TEXT,
comment TEXT,
product_id INTEGER,
FOREIGN KEY(product_id) REFERENCES products(id));`;
async createTables(){
try {
await this.database.executeSql(this.familyTable);
await this.database.executeSql(this.locationTable);
await this.database.executeSql(this.productTable);
await this.database.executeSql(this.transactionTable);
}catch(e){
console.log("Error !");
}
}
constructor(public sqlite :SQLite) {
console.log('Hello DataServiceProvider Provider')
this.sqlite.create({name: "data.db", location: "default"}).then((db : SQLiteObject) => {
this.database = db;
}, (error) => {
console.log("ERROR: ", error);
});
}
}
У кого-нибудь есть идеи, как это исправить?