Мы можем обещать функцию mysql pool getConnection
, если мы уже создали пул, например:
const mysql = require('mysql');
const util = require('util');
const mysqlPool = mysql.createPool(CONFIG);
const getConnectionPm = util.promisify(mysqlPool.getConnection).bind(mysqlPool);
И использование может быть примерно таким:
(async() => {
const connection = await mysqlPool.getConnectionPm();
});
Как мне пообещать функции mysqlPool.getConnection.query
использовать переменную connection
? Чтобы сделать что-то вроде этого:
(async() => {
const connection = await mysqlPool.getConnectionPm();
const result = await connection.queryPm(SQL_QUERY, SQL_ARGS);
});
Проблема в том, что я не знаю, как передать переменную connection
в функцию promisify. Я предполагаю, что другим способом является создание объекта соединения с функцией getConnectionPm
, а затем привязка запроса к этому объекту, как мы делали для обещания самого getConnection
. Но как мы можем достичь чего-то подобного приведенному выше коду?
Например, приведенный ниже код дает неопределенную ошибку:
const getConnectionPm = util.promisify(mysql.createPool.getConnection);