ионный 4 / угловой 6 Перекомпилирование ... бесконечный цикл - PullRequest
0 голосов
/ 25 сентября 2018

Я использую Ionic 4 / Angular 6 с Electron для запроса .mdb файлов (мс доступа дБ) , поэтому я использовал database-js-adodb пакет для подключения к базе данных и выполнения запросов.

Моя проблема заключается в том, что я вызываю метод select из home.page.ts для запроса базы данных с помощью database-js-adodb пакет, мое приложение стекается в бесконечный цикл перекомпиляции.

ПРИМЕЧАНИЕ: Я использую тот же код в приложении Ionic 3 / Angular 5 с электроном, и он работает как шарм

ORM.service.ts

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class ORMService {
  // tslint:disable-next-line
  private ADODB = window.require('database-js-adodb');
  public connection: any;
  constructor() {
    this.connect();
  }

  private connect() {
        this.connection = this.ADODB.open({
            Database: 'src/assets/data.mdb'
        });
  }

  select(tableName: string, fields: string | string[], whereStatment? : string): Promise<any> {
    return new Promise( async (resolve, reject) => {
      fields = typeof fields == 'object' ? fields.join(',') : fields;
      let queryString = whereStatment ? 
                        `SELECT ${fields} FROM ${tableName} WHERE ${whereStatment}` :
                        `SELECT ${fields} FROM ${tableName}`;
      try {
        let rows = await this.connection.query(queryString);
        resolve(rows);
      } catch (error) {
        console.log(error);
        reject(error);
      } finally {
        await this.connection.close();
      }
    })
  }

}

home.page.ts

import { Component } from '@angular/core';
import { ORMService } from '../services/orm/ORM.service';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {

  constructor(private ORM: ORMService) {
    this.ORM.select('users','*').then((rows) => {
      console.log(rows);
    });
  }
}
...