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

Поддержка
  • @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-го блока "Выполнить код" на несколько. Но это не удобно, если функций много

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

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

    Вы выполняете действие "выполнить код" и оно выполняется полностью прежде, чем перейдёт к другому действию. Так работает интерпретатор в режиме "запись".

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

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

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

    А как так же объявить эти ф-ции в "выполнить код"?

    В действии Выполнить код как я выше писал мне последовательно нужно выполнить 2 функции:

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

    Функции заданы как стандартно задаются в басе:
    alt text

    Как их еще нужно задать, чтобы работало последовательно выполнение ф-ций в одном действии Выполнить код?