Показать сообщение отдельно
  #1 (permalink)  
Старый 24.02.2018, 09:42
Аспирант
Отправить личное сообщение для Elfix Посмотреть профиль Найти все сообщения от Elfix
 
Регистрация: 03.01.2018
Сообщений: 38

Видимость this в Class
Приветствую,

const postgresql = require('pg-promise-simple');
const connectionString = "строка подключения к базе данных";

class Database {
	constructor() {
		postgresql.connect(connectionString).then(connection => {
			this.database = connection.client;
		}).catch(error => {
			this.database = 0;
		});
	}
	
	getDatabase() {
		return this.database;
                // Всегда возвращает undefined
               // Хотя должен вернуть либо json либо 0
	}
}

module.exports.Database = Database;


this.database инициализируется в конструкторе.
А когда вызывается метод класса getDatabase this.database уже underfined.

Работа с классом происходит вот так:
const database = require('.../database.js');

data = new database.Database();
console.log(data.getDatabase());


После отработки программа не завершается, а продолжает висеть в памяти.

1. Что делаю не так, почему this.database равен underfined в методах класса, несмотря на инициализацию его в конструкторе;
2. Почему программа не завершается, а продолжает висеть в памяти. Как ее завершить принудительно?
Ответить с цитированием