Функция генерации строк: 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
    Приналичии асинхронных действий в функции, она должна вызываться через _call(funcName, null)!

    Результат нужно передавать через _set_result(result_string)

    Получать через
    VAR_RESULT = _result()

  • @pragmatik

    @pragmatik said in Функция генерации строк: Invalid return statement:

    @fox делаю свой фреймворк, ставлю перед собой задачу по максимуму то, что умеет бас, вызывать в коде через подобные функции. Да и удобно так, - вместо кучи экшенов один блок кода. И ошибки искать проще, и действий меьше - можно очень сложные и объёмные проекты писать красиво и лакончино.

    Работать с АПИ бас то еще удовольствие. Я убил кучу нервных клеток, что бы изучить все его ньюансы. И с уверенностью могу сказать - намучаетесь )) Особенно неудобно, что нельзя использовать локальные переменные, если скрипт будет компелироваться с защитой. Иначе будет куча непонятных ошибок.

    Какие-то отдельные функции конечно можно писать. Но делать как я делал не советую. А я писал огромные скрипты в несколько тысяч строк и все в выполнить код ))

  • @usertrue благодарю за совет.

  • @drprime said in Функция генерации строк: Invalid return statement:

    _call(funcName, null)!

    А как это будет выглядеть в моём случае?

  • 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
    }
    

    ???

  • @pragmatik

    Пример асинхронной функции

    yourFunc= function() {
         var value = _arguments(); // your arguments
         //....your code
        _set_result(yourResult); // instead return
    } 
    _call(yourFunc,value)!
    var yourResult = _result();
    
  • @usertrue спасибо!

  • 0 Votes
    2 Posts
    421 Views
  • 0 Votes
    8 Posts
    706 Views
  • 0 Votes
    6 Posts
    743 Views
  • 0 Votes
    14 Posts
    2731 Views
  • 0 Votes
    6 Posts
    1646 Views