Экшен "Выполнить код" не работает асинхронно



  • Функция БАС включается асинхронно. В ней лежит функция js в "Выполнить код". После нее бесконечный цикл while, в котором к функции js обращаюсь через действо "Установить переменную".
    Если "Выполнить код" до цикла, то функцию не видит, пишет "ReferenceError: Can't find variable: optionCalc"
    Если внутри цикла, то просто наглухо виснет.
    В однопотоке отлично работает.
    Могу приложить код, но он сильно здоровый



  • @Viktor said in Экшен "Выполнить код" не работает асинхронно:

    Функция БАС включается асинхронно. В ней лежит функция js в "Выполнить код". После нее бесконечный цикл while, в котором к функции js обращаюсь через действо "Установить переменную".
    Если "Выполнить код" до цикла, то функцию не видит, пишет "ReferenceError: Can't find variable: optionCalc"
    Если внутри цикла, то просто наглухо виснет.
    В однопотоке отлично работает.
    Могу приложить код, но он сильно здоровый

    Скорее всего проблема в области видимости переменных объявленных в действии "выполнить код", используйте переменные BAS (вместо "optionCalc") если не понимаете о чём я говорю



  • @Fox так дело ж в том, что optionCalc это не переменная, а та самая функция объявленная в "Выполнить код". Его просто не видно внутри цикла, мне кажется. Но если внутрь цикла поместить, то виснет. Очень странно



  • @Viktor said in Экшен "Выполнить код" не работает асинхронно:

    @Fox так дело ж в том, что optionCalc это не переменная, а та самая функция объявленная в "Выполнить код". Его просто не видно внутри цикла, мне кажется. Но если внутрь цикла поместить, то виснет. Очень странно

    брр.. если вы знакомы с js, то проведите эксперемент с разными способами объявить переменную и блин сразу увидите область видимости. Если вкратце, то замените строку

    function optionCalc () {
    
    }
    

    на

    optionCalc = function () {
    
    }
    


  • @Fox попробовал так объявить. Наглухо виснет сразу.



  • @Viktor said in Экшен "Выполнить код" не работает асинхронно:

    @Fox попробовал так объявить. Наглухо виснет сразу.

    На этом наши полномочия всё (c)



  • @Fox да. вопрос сложный. надеюсь @support заметит
    прикладываю тестовый скрипт с воспроизведением ошибки
    конкретно в тестовом скрипте просто виснет
    proba1.xml



  • @Viktor said in Экшен "Выполнить код" не работает асинхронно:

    @Fox да. вопрос сложный. надеюсь @support заметит

    :D Вопрос ни разу не сложный и саппорт точно его не заметит. Официальной поддержки на форуме нет, но каждый почему то считает должным привлечь внимания саппорта к своей проблеме.

    @Viktor said in Экшен "Выполнить код" не работает асинхронно:

    прикладываю тестовый скрипт с воспроизведением ошибки
    конкретно в тестовом скрипте просто виснет
    proba1.xml

    У вас цикл while без паузы, это повешает BAS само по себе. А с паузой всё работает корректно:

    6c1f7490-7b2a-48aa-aabf-9beb6ceb1272-изображение.png

    45b99e5b-72e3-4908-a439-b06cde683547-изображение.png

    proba2.xml



  • @Fox как всегда огромное вам спасибо. с задержкой все заработало. Поверьте, я знаю как занят @support и уважаю его время. как чувствовал, что проблема в какой-нибудь мелочи. задержку кстати можно ставить исчезающе маленькую. я над этим еще поэкспериментирую


Log in to reply