видимо проблема сейчас после 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)!
})!
})!
Правильно ли синхронизировал код node?
-
Подскажите правильно ли я преобразовал код и синхронизировал с bas?
Изначальный вид с синхронным чтением директории:
const fs = require('fs') const dir = 'C://test//' function print(dir) { const result = fs.readdirSync(dir) return result } console.log('result:' + print(dir))Преобразованный код в асинхронное чтение директории и синхронизированный с bas:
const fs = require('fs') const dir = 'C://test//' async function print(dir) { await (new Promise((resolve, reject) => { fs.readdir(dir, function (err, dir) { if (err) { console.log('err') } [[result]] = dir resolve() }) })); return [[result]] } console.log('result:' + await print(dir))чуть дополнил еще одной функции для проверки.По идее в консоль должно быть пусто,ибо фильтр не пройден.Но фильтр не сработал,и вывелось содержание папки. Что то не так..
const fs = require('fs') const dir = 'C://test//' async function print(dir) { await (new Promise((resolve, reject) => { fs.readdir(dir, function (err, dir) { if (err) { console.log('err') } [[result]] = dir.filter(async (a) => (await filterTest(a))) resolve() }) })); return [[result]] } console.log('result:' + await print(dir)) async function filterTest(dir) { return false } -
const fs = require('fs') const dir = 'C://test//' async function print(dir) { return await (new Promise((resolve, reject) => { fs.readdir(dir, function (err, dir) { if (err) { console.log('err') } resolve(dir) }) })); } console.log('result:' + await print(dir))Функция фильтр не работает с асинхронным калбэком, используйте обычный цикл
и у модуля fs, есть вариант на промисахconst fs = require('fs').promises const dir = 'C://test//' async function print(dir) { try { return fs.readdir(dir) } catch (e) { console.log(e) } } console.log('result:' + await print(dir)) -
Спасибо,все работает. Жаль,что стрелочными функциями не воспользоватся,так код компакнее)
-
@markinaras используйте стрелочные функции, кто сказал, что нельзя)