Баг ф-ции sleep в if условии

Поддержка
  • @drprime Спасибо. А если в цикле, как быть? While() например

  • @agility

    _do(function(){
    //Do some
    if(need_stop)
        _break()
    })!
    

    Это цикл while, точнее просто вечный цикл
    Вообще, все функции можно посмотреть в коде скрипта, с помощью поиска по действию

  • @drprime Можешь пожалуйста еще заодно здесь подсказать как вызывать функции BAS из действий в js коде?
    По скрину ниже надо вызвать Test() из "Выполнить свой js код"

    0_1560789295215_test.png

  • @agility Если в функции есть асинхронные действия, вызывается так

    _call(Test, null)!
    
  • @drprime Что-то опять мини-баг или я недопонял. Пишу такой код:

    _if (1, function() {
        _call(Test1, null)!
    })!
    
    _if (1, function() {
        _call(Test2, null)!
    })!
    

    Мне ошибка:

    ReferenceError: Can't find variable: Test2 во время выполнения действия 
    

    Если только с одним _if делать, то все работает

  • @agility Багов нет функция должна быть определена раньше ее вызова.

  • @usertrue Как ее раньше определить? Я создал ее через список

    0_1561047979430_test2.png

  • @agility в выполнить код. Вы зря лезете в это, если не понимаете, что делаете.

  • @usertrue Ничего не понял. Вот весь мой скрипт на скрине. test1 в логе написалось, test2 нет - выводит ошибку. В чем здесь ошибка задания функций?

    0_1561056262109_test3.png

  • @agility В том, что у вас вызов стоит первым. Те функции, что вы создали в БАС идут где-то потом, откройте код скрипта и сами все уведите.

  • @usertrue Все равно не понял. У меня вызов функций выполняется в блоке действия "Выполнить код", который стоит после блока действия "Инициализация", где возможно и загружаются заранее все созданные функции.
    Почему тогда функция Test1 выводит и BAS её видит, а Test2 нет?

  • @agility Случайность. Еще раз говорю смотрите код. Если не понимаете что в нем, то бросайте это занятие.

  • @agility said in Баг ф-ции sleep в if условии:

    @drprime Что-то опять мини-баг или я недопонял. Пишу такой код:

    _if (1, function() {
        _call(Test1, null)!
    })!
    
    _if (1, function() {
        _call(Test2, null)!
    })!
    

    Мне ошибка:

    ReferenceError: Can't find variable: Test2 во время выполнения действия 
    

    Если только с одним _if делать, то все работает

    А вы пробовали запускать скрипт?

    0_1561139202437_c105cda5-6c42-4cc3-ad7e-8f6541649b31-изображение.png

    0_1561139370361_666bc011-a98b-4c5b-8594-4a01d88c555a-изображение.png

    тестовый скрипт

  • @fox Вот, ваш скрипт скачал, запустил и та же ошибка. Версия BAS последняя.

    0_1562488266895_crr.png

  • @agility said in Баг ф-ции sleep в if условии:

    @fox Вот, ваш скрипт скачал, запустил и та же ошибка. Версия BAS последняя.

    0_1562488266895_crr.png

    Вы скриншот приложили из режима "запись" а не "запуск"

  • @agility ...Создавайте функции сами в выполнить код,а не делайте их через кубик и тогда у вас не будет проблем. Вызов функций созданных в бас работает сейчас по не очень понятной логике, раньше работал нормально.

  • @fox said in Баг ф-ции sleep в if условии:

    Вы скриншот приложили из режима "запись" а не "запуск"

    Так смысл тогда в решении выше, что через "запуск" работает, а через "запись" нет. Я пишу шаблон и тестирую через "запись". Получается у меня теперь через "запись" не получится никогда тестировать шаблон.

    @UserTrue А как вы через "выполнить код" пишите функции, если иногда требуется вызывать действия типа "Считать файл в списко", "Двигать мышь над элементов"? Они же там через api BAS'a криво выводятся.

  • @agility said in Баг ф-ции sleep в if условии:

    @UserTrue А как вы через "выполнить код" пишите функции, если иногда требуется вызывать действия типа "Считать файл в списко", "Двигать мышь над элементов"? Они же там через api BAS'a криво выводятся.

    Нормально они работают, если все делать правильно, но мне кажется я уже устал писать об этом. Не понятно зачем вызывать функций через апи бас, если нет понимания как с ним работать.

  • @agility said in Баг ф-ции sleep в if условии:

    @fox said in Баг ф-ции sleep в if условии:

    Вы скриншот приложили из режима "запись" а не "запуск"

    Так смысл тогда в решении выше, что через "запуск" работает, а через "запись" нет. Я пишу шаблон и тестирую через "запись". Получается у меня теперь через "запись" не получится никогда тестировать шаблон.

    А как бы вы хотели, чтобы в режиме "запись" ваш код отработал? Если у вас одним действием вызываются две разные функции:

    _if (1, function() {
        _call(Test1, null)!
    })!
    
    _if (1, function() {
        _call(Test2, null)!
    })!
    
  • @fox Мне нужно, чтобы Test1() выполнилось, затем Test2()
    То есть последовательно
    Там ведь везде стоит знак !, что означает ожидание завершение каждого действия - то есть последовательное выполнение
    Я пока решаю этот вопрос разделением 1-го блока "Выполнить код" на несколько. Но это не удобно, если функций много