Экшен "Выполнить код" не работает асинхронно
-
Функция БАС включается асинхронно. В ней лежит функция 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 Экшен "Выполнить код" не работает асинхронно:
:D
Вопрос ни разу не сложный и саппорт точно его не заметит. Официальной поддержки на форуме нет, но каждый почему то считает должным привлечь внимания саппорта к своей проблеме.@Viktor said in Экшен "Выполнить код" не работает асинхронно:
прикладываю тестовый скрипт с воспроизведением ошибки
конкретно в тестовом скрипте просто виснет
proba1.xmlУ вас цикл while без паузы, это повешает BAS само по себе. А с паузой всё работает корректно:
-
@Fox как всегда огромное вам спасибо. с задержкой все заработало. Поверьте, я знаю как занят @support и уважаю его время. как чувствовал, что проблема в какой-нибудь мелочи. задержку кстати можно ставить исчезающе маленькую. я над этим еще поэкспериментирую