видимо проблема сейчас после if в двигать мышь и кликнуть на элемент
var data = {fail:false,wait:true};data["scroll"] = "no scroll" == "scroll";data["threshold"] = parseInt(80);data["timeout"] = 5000;data["data"] = "iVBORw0KGgoAAAANSUhEUgAAAMEAAAAeBAMAAABnBGdVAAAALVBMVEUAWv/V5P////+cv/9Chf+Qt/+81P/k7v+Crv/y9/+nxv/5+/9dlv/F2f9zpf8aFseGAAABB0lEQVR4Ae2SsUoDQRCG58ixbHHFXhCsHcHG5kilaJFG5j1EMIepwqFgtYWNbGWEEGGtfQBBzm4LC/MkvoazupWphEkT9msGrvi/m38HMpnMfxg2a5/O0qxVJyDQT2sp5bWoQd32GzbQdAHl7NAqPABCr5+xJ+Rgh3tChhN7OaZO+SvrThfQfr6H9oN3qB5h1MgYanDNvf1pZtABTV6BLn5bWskY+F/JHIc4QSHiZAnFTjSUM5QxxFSfDAXn6WSo5kZoBzKg31JLyrMhtTTw3J6IIYbffBm9bANNH8Ad8UuHmg19NZcx7I75nO7Sta5wn6/Vw4iXOccXI3NLf+B32DDbYMhktphvXodGRgltnEgAAAAASUVORK5CYII=";_wait_image(data)!
_if(typeof _Idle != "undefined", function(){
_Idle.emulate({useGeneral: true, target: _image()})!
})!
_if_else(typeof _Idle != "undefined" && _Idle.additionalEmulationEnabled(), function(){
_Idle.moveAndClickOn(_image(),{holdCtrl: false, clickType: "left", wait: false, moveSettings: {} })!
}, function(){
_image().random_point()!
_if(_result().length > 0, function(){
move( {} )!
_image().clarify(X,Y)!
_call(_clarify, {} )!
mouse(X,Y)!
})!
})!
Не работают колбеки 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или и сам вызов функций оборачивать в промис