Изучение, как использовать Postgres, и трудности с вызовом нескольких асинхронных функций пула линейным способом.
Я хочу отбросить все свои таблицы, создать все эти таблицы и заполнить все эти таблицы одной командой в Powershell.Я использую модуль npm 'make-runnable' для этого.Функции выполняются изолированно, но набирать их по одной за раз каждый раз, когда я хочу попробовать что-то новое, очень сложно.
Я рассмотрел, как работает асинхронный синтаксис, и успешно использовал его в прошлом.,Я посмотрел, как работает пул, но я просто получил много объяснений по поводу его синтаксиса.
Мои три функции в основном представляют собой эту структуру и используют один и тот же вызов pool.query ():
const createTables = () => {
const taskTableText =
`CREATE TABLE IF NOT EXISTS
acts(
id UUID DEFAULT uuid_generate_v1 (),
name VARCHAR(128) NOT NULL,
length INTERVAL NOT NULL,
percent_complete INT NOT NULL,
start_stamp TIMESTAMPTZ NOT NULL,
PRIMARY KEY (id)
)
`;
pool.query(taskTableText)
.then((res) => {
console.log(res);
pool.end();
})
.catch((err) => {
console.log(err);
pool.end();
});
}
Это хорошо работает в Powershell, но когда я пытаюсь сделать три вместе, как
const makeFresh = async function() {
const stepOne = await dropTables();
const stepTwo = await createTables();
const stepThree = await seedTables();
}
Один получает вызов (или, возможно, они все пытаются и стреляют, потому что они не работают по одному за раз?) на первый взгляд случайным образом, поскольку в выводе оболочки команда может отличаться каждый раз:
--------make-runnable-output--------
undefined
------------------------------------
connected to db
connected to db
connected to db
Result {
command: 'DROP',
rowCount: null,
oid: null,
rows: [],
fields: [],
_parsers: [],
RowCtor: null,
rowAsArray: false,
_getTypeParser: [Function: bound ] }
client removed
Я уверен, что на этот вопрос есть простой ответ, я плохо себя чувствую, спрашивая, но не хочу записыватьеще час бьюсь головой о стену.