@evgen-eao функций с ! на конце это асинхронные функции api bas и это так не работает. Ищите на форуме обрывки инфы, но вообще разработчик так делать не рекомендует и поддержки связанные с проблемами из-за такого использования этим не даёт.
Функция генерации строк: Invalid return statement
-
Пытаюсь реализовать в коде функции экшена "шаблон", он же "генератор строк" в ресурсах. Функция взята из исходного кода скрипта бас. Выводит ошибку: Invalid return statement.
Функция такого порядка:function func_rus_fem_surname(){ _template("\u003cRSurname\u003ea")! var result = _spintax(_result()).replace("BASASYNC","\)\!").replace(/&#([0-9]+);/g,function(a,s){return String.fromCharCode(parseInt(s))}) return result }Пробовал помещать блоки _template и _spintax в _if(true, function(){ ... })!, пробовал запускать строки через eval, пробовал конвертировать шаблон вида "<RSurname>а" в юникод и подставлять в _template(" ... ") при помощи eval.
Ничего не помогает. Моих знаний в js не хватает, кто подскажет, что делать чтобы функция заработала?
-
@Pragmatik Я задам пожалуй самый очевидный вопрос, а нафига?
-
@fox делаю свой фреймворк, ставлю перед собой задачу по максимуму то, что умеет бас, вызывать в коде через подобные функции. Да и удобно так, - вместо кучи экшенов один блок кода. И ошибки искать проще, и действий меьше - можно очень сложные и объёмные проекты писать красиво и лакончино.
-
@pragmatik said in Функция генерации строк: Invalid return statement:
@fox делаю свой фреймворк, ставлю перед собой задачу по максимуму то, что умеет бас, вызывать в коде через подобные функции. Да и удобно так, - вместо кучи экшенов один блок кода. И ошибки искать проще, и действий меьше - можно очень сложные и объёмные проекты писать красиво и лакончино.
Работать с АПИ бас то еще удовольствие. Я убил кучу нервных клеток, что бы изучить все его ньюансы. И с уверенностью могу сказать - намучаетесь )) Особенно неудобно, что нельзя использовать локальные переменные, если скрипт будет компелироваться с защитой. Иначе будет куча непонятных ошибок.
Какие-то отдельные функции конечно можно писать. Но делать как я делал не советую. А я писал огромные скрипты в несколько тысяч строк и все в выполнить код ))
-
function _call(func_rus_fem_surname, null)!{ _template("\u003cRSurname\u003ea")! var result = _spintax(_result()).replace("BASASYNC","\)\!").replace(/&#([0-9]+);/g,function(a,s){return String.fromCharCode(parseInt(s))}) var result = _result() return result }???
-
Пример асинхронной функции
yourFunc= function() { var value = _arguments(); // your arguments //....your code _set_result(yourResult); // instead return } _call(yourFunc,value)! var yourResult = _result();