Выполнить код ошибка "ReferenceError: Can't find variable"



  • Добрый вечер.
    При работе в много потоке возникает ошибка: "не удается найти переменную".
    При работе в "запись" код работает нормально в чем может быть причина ?
    Сам код:

    var Milliseconds = Number([[DATE_PUBLICATION_PROGRAMS_BD_DOCUMENTATION_ID]]);
    var DaysInner = new Date(Milliseconds);
    //log(DateInner);
    var DaysInnerHTM = DaysInner.toGMTString();
    //log(DaysInnerHTM);
    var [[DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML]] = DaysInnerHTM;
    

    Ошибка: [34510862] [23:34:47] Поток №2 : Поток завершился с сообщением "ReferenceError: Can't find variable: VAR_DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML во время выполнения действия "



  • @ediczr последний "var" разве нужен?



  • Да пробовал с var и без него.



  • @ediczr

    [[DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML]] = (new Date(Number([[DATE_PUBLICATION_PROGRAMS_BD_DOCUMENTATION_ID]]))).toGMTString()
    


  • @fox Все равно ошибка: [34510862] [02:13:05] Поток №2 : Поток завершился с сообщением "ReferenceError: Can't find variable: VAR_PUBLICATION_PROGRAMS_DAYS_INNER_HTML во время выполнения действия "



  • Подскажите в режиме "запись" переменная при старте объявляется DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML: "undefined"

    Переменная объявляется в коде "Выполнить код" - это правильно ?



  • @ediczr said in Выполнить код ошибка "ReferenceError: Can't find variable":

    Подскажите в режиме "запись" переменная при старте объявляется DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML: "undefined"

    Переменная объявляется в коде "Выполнить код" - это правильно ?

    Как же мне заеба.. надоело гадать.. Вы в первом сообщении написали, что у вас в режиме "запись" всё работает, а в режиме "запуск" вываливается ошибка? А где вы объявляете переменные и где используете? Если объявить переменную в функции OnApplicationStart, то в main она уже не будет видна. Так же если вы в main объявляете переменную, а следом вызываете "функцию в многопотоке" то эту переменную там видно не будет.



  • @fox Прошу прощения я сам ошибся сейчас исправляю и пробую, что Вы правильно написали (проверю и отпишусь)



  • Вопрос решился переписал как необходимо чтобы работало в много потоке.
    Поясняю кому интересно в "Main" функция запускается в много поток через "Количество потоков". Все переменные внутри функции без передачи и взаимодействия.
    При написании в режиме "Запись" код который ниже работает:
    код №1

    var Milliseconds = Number([[DATE_PUBLICATION_PROGRAMS_BD_DOCUMENTATION_ID]]);
    var DaysInner = new Date(Milliseconds);
    //log(DateInner);
    var DaysInnerHTM = DaysInner.toGMTString();
    //log(DaysInnerHTM);
    var [[DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML]] = DaysInnerHTM;
    

    код№2

    var timeinmilli = [[DATE_DIFFERENCE_IN_SECONDS_PUBLICATION_PROGRAMS]] * 1000;
    var seconds = parseInt(timeinmilli = timeinmilli / 1000) % 60;
    var minutes = parseInt(timeinmilli = timeinmilli / 60) % 60;
    var hours = parseInt(timeinmilli = timeinmilli / 60) % 24;
    var days = parseInt(timeinmilli = timeinmilli / 24);
    DaysInnerHTM = days + ' days, ' + hours + ' hours, ' + minutes + ' min, ' + seconds + ' sec.'
    var [[PUBLICATION_PROGRAMS_DAYS_INNER_HTML]] = DaysInnerHTM;
    //log(DaysInnerHTM);
    

    При запуске в много потоке появляются ошибки "не удается найти переменную"

    ReferenceError: Can't find variable [[DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML]]
    ReferenceError: Can't find variable [[PUBLICATION_PROGRAMS_DAYS_INNER_HTML]]
    

    В много потоке работает такой код
    код№1

    [[DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML]] = (new Date(Number([[DATE_PUBLICATION_PROGRAMS_BD_DOCUMENTATION_ID]]))).toGMTString();
    

    код№2

    [[PUBLICATION_PROGRAMS_DAYS_INNER_HTML]] = parseInt([[DATE_DIFFERENCE_IN_SECONDS_PUBLICATION_PROGRAMS]]/60/60/24) + ' days, ' + parseInt([[DATE_DIFFERENCE_IN_SECONDS_PUBLICATION_PROGRAMS]]/60/60)%24 + ' hours, ' + parseInt([[DATE_DIFFERENCE_IN_SECONDS_PUBLICATION_PROGRAMS]]/60)%60 + ' min, ' + parseInt([[DATE_DIFFERENCE_IN_SECONDS_PUBLICATION_PROGRAMS]])%60 + '; sec.';
    

    В чем причина, пересечение потоков нет переменные у каждого потока свои. (Если кто в курсе поясните в чем дело ;-) )....



  • @ediczr said in Выполнить код ошибка "ReferenceError: Can't find variable":

    Если кто в курсе поясните в чем дело ;-)

    Объявлять переменные BAS нужно без приставки var

    [[DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML]] = DaysInnerHTM;
    или
    VAR_DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML = DaysInnerHTM;
    


  • @fox Делал так [[DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML]] = DaysInnerHTM; работает в режиме "Запись".



  • @fox Проверю такой вариант VAR_DATE_PUBLICATION_PROGRAMS_DAYS_INNER_HTML = DaysInnerHTM;



  • @ediczr Вы где ее объявляете? Не в onAplication?



  • @usertrue Объявляю в функции


Log in to reply