Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Видимость this в Class (https://javascript.ru/forum/node-js-io-js/72757-vidimost-v-class.html)

Aetae 24.02.2018 18:32

Если утрировать:
function mainExecutionStream(connection){
//здесь ВЕСЬ код
}
postgresql.connect(connectionString).then(mainExecutionStream);

А так код должен быть разбит на методы и функции вызывающие друг друга.

Ну и ещё по новомодному можно так:
( async function mainExecutionStream(connection){
  var connection = await postgresql.connect(connectionString);
  //здесь ВЕСЬ код
}())
только следует помнить, что async/await - это не sleep никакой, а обёртка над промисами.

Elfix 24.02.2018 19:11

В общем победил. Воспользовался немного другим классом для этого.
В целом мой класс получился вот таким:

const connectionString = "Строка подключения";

const {Pool} = require('pg');

class Database {
	constructor (autoConnect = false) {
		if (autoConnect)
			this.connect();
	}
	
	connect() {
		this.pool = new Pool({
			connectionString: connectionString
		});
	}
	
	disconnect() {
		this.pool.end();
	}
	
	query(sql, func) {
		this.pool.query(sql, (error, result) => {
			func(error, result);
		});
	}
}

const database = new Database(true);
database.query('Мой код SQL', (error, result) => {
	console.log(result);
});
database.disconnect();

Audaxviator 24.02.2018 19:44

Не другим классом воспользовался, а другим драйвером.


Часовой пояс GMT +3, время: 19:24.