Не работают колбеки 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 или и сам вызов функций оборачивать в промис


Log in to reply