@FabuFacker said in Получить строку из GET Запроса:
@UserTrue Я и прошу помочь с этим
Вряд-ли это кто-то станет в рамках просто помочь на форуме
Не понимаю как в BAS вызвать функцию из переменной либо из ресурса.
Есть несколько часто используемых функций вызывающим другие функции.
Хочу упаковать их в один общий модуль, в который будут подставляться имена функций вместо многократного вызова одной и той-же функции с разным наполнением.
Вот пример:
0_1572768731951_test.xml
И что я должен там прочесть?
Как создавать ресурс при помощи действия выполнить код?
Мне не требуется ничего создавать, мне нужно всего лишь вызвать уже существующую функцию из переменной
_call_function([[FOR_TEST]],{})
но BAS отказывается выполнять код с подстановкой переменной выдавая ошибку:
TypeError: Result of expression 'f' [TEST] is not a function
при том что если точно также подставлять переменную при выводе лога - все прекрасно работает.
log([[FOR_TEST]])
@sydhe said in Вызов функции из ресурса или переменной:
_call_function([[FOR_TEST]],{})
Во первых это асинхронный вызов и должен быть ! в конце _call_function([[FOR_TEST]],{})!
А во вторых БАС не предназначен для работы с его API напрямую, хотя это и возможно, но там очень много нюансов.
@tts9 said in Вызов функции из ресурса или переменной:
@sydhe Вы рады? Прочесть на форуме можно 90% информации о басе, о том как он работает, и о том как он не работает.
Не понял чему я должен быть рад, тому что вы дали ссылку на абсолютно не относящуюся к вопросу тему?
Странный вопрос...
@sydhe said in Вызов функции из ресурса или переменной:
Получается какие конструкции не пихай в действие выполнить код - с подстановкой значения из переменной работать оно не будет?
Будет, если знать как, но я это расписывать не стану тк это не рекомендуется разработчиком и придется провести большой ликбез.
@sydhe said in Вызов функции из ресурса или переменной:
И что я должен там прочесть?
Как создавать ресурс при помощи действия выполнить код?
Мне не требуется ничего создавать, мне нужно всего лишь вызвать уже существующую функцию из переменной_call_function([[FOR_TEST]],{})но BAS отказывается выполнять код с подстановкой переменной выдавая ошибку:
TypeError: Result of expression 'f' [TEST] is not a functionпри том что если точно также подставлять переменную при выводе лога - все прекрасно работает.
log([[FOR_TEST]])
Можно создать свою функцию с возможностью указывать имя вызываемой функции из переменной. Например вот так:
function _call_function_var(f, a, n) {
var c = new Cycle(function(i){
if(i>0)
{
_break(1, false);
return;
}
eval(f + "()");
},n);
c.SetLabel("function");
c.SetLabel("argument");
c._Arguments = a;
c.Start();
}
Тестовый скрипт
Правда работать такая функция будет только в режиме "запуска"

И какие баги могут всплыть при использовании подобной функции ни кто не знает.. :D
@UserTrue правильно сказал, @support крайне не рекомендует писать скрипт на методах BAS:
Писать такой код крайне не рекомендуется. Под "такой" я имею ввиду писать код целиком с использованием внутренних расширений БАС. Это приводило не раз и приведет в вашем случае к ошибкам, которые очень трудно выловить и исправить.
Спасибо, жаль почти не юзабельно из за того что в режиме записи не работает, потом действительно не поймешь где что багнуло.
У себя в скрипте пока пользуюсь подстановкой значений в основные переменные указывая их за пределами функции, в итоге получается почти тот-же эффект, правда с кучей ненужных переменных, но в итоге их все равно меньше чем если создавать отдельно под каждую функцию.
@sydhe теперь вы поняли зачем я вам давал ссылку? Непонятную ошибку 'f' ловить потом замаешься.
можете попробовать методом @Pragmatik -ка он в своей библиотеке решил эти проблемы путем обзывания функциклеров названиями которые точно никак не используются=)
Текст ссылки
Конечно немного непривычно даже сильно непривычно но привыкаешь.
@tts9 said in Вызов функции из ресурса или переменной:
можете попробовать методом @Pragmatik -ка он в своей библиотеке решил эти проблемы путем обзывания функциклеров названиями которые точно никак не используются=)
Да не, спс - не особо знаком с js и думал что это просто мелочь которую забыли добавить в BAS, ведь что может быть проще создания ярлыка, а тут оказалось что это целая проблема.
На самом деле мне способ с дублированием переменных вполне подходит, в отличии от функций у меня их не так уж и много.
Жаль сразу не понял что можно и так, и зря убил почти весь день на поиски не нужного мне и опасного функционала.