169 похожих чатов

Привет всем! Подскажите пожалуйста, как может такое быть, что функции

выполняются не по порядку?

async function init() {
await health.testPg() // Check is postgres up
//If it's down -- do not start server
await dataSource.initialize().then(async () => {
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

// Routes
app.post("/reg", (req: express.Request, res: express.Response) => reg(req, res))
app.get("/getregs", (req: express.Request, res: express.Response) => seeRegs(req, res))

app.get('*', function(req, res){
res.status(404).send('Page not found :(');
});

app.listen(port, () => {
console.log(`Server started at port ${port}`)
})
})
}

Тут мне выдаёт ошибку от dataSource.initialize() не выполняя health.testPg(), хотя await на месте. Если убрать dataSource.initialize() то все остальное выполняется по порядку

6 ответов

23 просмотра

Await .then? )

Mr.-Anderson 🇺🇦 Автор вопроса
Danila
Await .then? )

Ой, это осталось с момента когда асинка не было) Спасибо, уберу

Mr.-Anderson 🇺🇦 Автор вопроса

Даже если делать health.testPg() init() То сначала выдаст ошибку от dataSource.initialize() внутри init()

Mr.-Anderson 🇺🇦 Автор вопроса
Mr. Anderson 🇺🇦
Даже если делать health.testPg() init() То снач...

node:internal/process/promises:288 triggerUncaughtException(err, true /* fromPromise */); ^ Error: connect ECONNREFUSED 127.0.0.1:5432 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1246:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 5432 } Вот сама ошибка какая то такая (я знаю, что база не поднята, так надо, я как раз healthcheck свой тестирую)

Mr.-Anderson 🇺🇦 Автор вопроса
Mr. Anderson 🇺🇦
node:internal/process/promises:288 tri...

async testPg(): Promise<void> { if ( this.failed >= 10 ) { this.logger.err("Failed connect to PostgreSQL") throw "Failed connect to PostgreSQL" } const pool = await new Pool({ host: process.env.POSTGRES_HOST || "127.0.0.1", port: parseInt(process.env.POSTGRES_PORT || ""), user: process.env.POSTGRES_USER || "", password: process.env.POSTGRES_PASSWORD || "", database: process.env.POSTGRES_DB || "", }) try { await pool.connect() } catch(err) { this.failed += 1 this.logger.wrn("Cannot connect to db. Wait...") setTimeout(() => this.testPg(), 10000) return } this.logger.good("Success connection to PostgreSQL! It's up") pool.end() } Вот сам код healthcheck моего

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта