Не работают колбеки then, catch, finally в промисах
-
Написал простейший код внутри двух промисов. В VSCode работает без проблем. в БАС же выполняет только сам промис до вызова колбеков. В чем причина?
ЛОГ БАС:
[541322140] [00:27:58] Поток №1 : Начинаем приседания
Дальше лога нет. Кубик нода при этом выполнен
ЛОГ VSCode:
Начинаем приседания Приседания окончены Error: Слишком много отжиманий
САМ КОД промисов:
// ------------------ Приседания ------------------ // const sit_time = 500; function sit(count) { return new Promise((resolve, reject) => { if (count > 100) { reject(new Error('Слишком много приседаний')) } setTimeout(() => { resolve(); }, count * sit_time); }) } // ------------------ Отжимания ------------------ // const wringOutTime = 200; function wringOut(count) { return new Promise((resolve, reject) => { if (count > 200) { reject(new Error('Слишком много отжиманий')) } setTimeout(() => { resolve(); }, count * wringOutTime); }) } // ------------------ Promise ------------------ // console.log('Начинаем приседания'); sit(2) .then(() => { console.log('Приседания окончены'); return wringOut(250); }).then (() => { console.log('Отжиманиия закончены') }).catch((e) => { console.log(e.toString()); });
-
@raiov99, https://community.bablosoft.com/topic/4450/websocket-на-node-js/6
Короче говоря, вам нужно использовать
await
иtry...catch
в местоthen...catch
или и сам вызов функций оборачивать в промис