Сорри , учту ... да это запросы функционала
Получить список всех созданных переменных, отладка
-
@mansory333 said in Получить список всех созданных переменных, отладка:
@Fox Проверил, в режиме запуска работает.
И что именно этот "рабочий" код выдал в лог?
-
@mansory333 said in Получить список всех созданных переменных, отладка:
Ну, я этот же скриншот и приложил в своём сообщении:

Присмотритесь, где в значении этого кода названия ваших переменных?
-
@Fox Там нет моих переменных..
И в логе массив, а там был объектЭто в режиме Запуска нет моих переменных, а в режиме Запись есть
И как же их получить в режиме запуска?
-
@mansory333 said in Получить список всех созданных переменных, отладка:
@Fox Там нет моих переменных..
И в логе массив, а там был объектА вы загуглите метод Object.keys()
Это в режиме Запуска нет моих переменных, а в режиме Запись есть
И как же их получить в режиме запуска?Я же об этом и говорю, скорее всего ни как
-
А вы загуглите метод Object.keys()
Загуглил, но не понятно как его связать с режимом Запуск.. Ну да ладно, решил пойти по другой дороге.
Запускать этот код по завершении скрипта
var AllVariablesTable = Object.keys(this) [[GG]] = JSON.parse(JSON.stringify(AllVariablesTable)) var iskl = ["SCREENSHOT_BASE64","DATA_JSON","SAVED_PAGE_HTML","CYCLE_INDEX"] var perem = [] **тут кубик foreach** one = [[FOREACH_DATA]] if(one.substr(0, 4) === "VAR_" && iskl.indexOf(one.substr(4)) == -1){ log(iskl.indexOf(one.substr(4)) == -1) perem.push(one) }В итоге имеем массив с переменными вида VAR_NEW_VARIABLE
При втором запуске скрипта и появлении ошибки читаем тхт с переменными и ...
Я остановился тут. Надо как то создать объект из каждого элемента массива.
Проблема в том, что не могу добавить в объект
obj.VAR_NEW_VARIABLE = eval(VAR_NEW_VARIABLE)Простите за мой гвно код)
obj.perem = eval(perem[i])
Вот так значение переменной правильное, а вот ключ как изменить -
@mansory333 said in Получить список всех созданных переменных, отладка:
А вы загуглите метод Object.keys()
Загуглил, но не понятно как его связать с режимом Запуск.. Ну да ладно, решил пойти по другой дороге.
Вы спросили почему этот код возвратил массив, а не объект, я ответил почему
Запускать этот код по завершении скрипта
var AllVariablesTable = Object.keys(this) [[GG]] = JSON.parse(JSON.stringify(AllVariablesTable)) var iskl = ["SCREENSHOT_BASE64","DATA_JSON","SAVED_PAGE_HTML","CYCLE_INDEX"] var perem = [] **тут кубик foreach** one = [[FOREACH_DATA]] if(one.substr(0, 4) === "VAR_" && iskl.indexOf(one.substr(4)) == -1){ log(iskl.indexOf(one.substr(4)) == -1) perem.push(one) }В итоге имеем массив с переменными вида VAR_NEW_VARIABLE
При втором запуске скрипта и появлении ошибки читаем тхт с переменными и ...
Я остановился тут. Надо как то создать объект из каждого элемента массива.
Проблема в том, что не могу добавить в объект
obj.VAR_NEW_VARIABLE = eval(VAR_NEW_VARIABLE)Простите за мой гвно код)
obj.perem = eval(perem[i])
Вот так значение переменной правильное, а вот ключ как изменитьВы меня тролите чтоли? Я говорю, что в окружении "this" сейчас нет локальных переменных BAS'a, что в режиме "запуск" не получить от них данные, раз их нет в окружении!
-
@Fox Я вас не понимаю.
К примеру есть у меня тхт файл и в нем строка VAR_NEW_VARIABLE
Разве я не могу читать файл в середине скрипта.
Получить значение переменной в данный момент
var error = [VAR_NEW_VARIABLE] = eval(VAR_NEW_VARIABLE)
И записать переменную error в папку error для отладки.
Так как баги не всегда в режиме Записи появляются -
@mansory333 said in Получить список всех созданных переменных, отладка:
@Fox Я вас не понимаю.
К примеру есть у меня тхт файл и в нем строка VAR_NEW_VARIABLE
Разве я не могу читать файл в середине скрипта.
Получить значение переменной в данный момент
var error = [VAR_NEW_VARIABLE] = eval(VAR_NEW_VARIABLE)
И записать переменную error в папку error для отладки.
Так как баги не всегда в режиме Записи появляютсяПолучить значение вы можете, но вот получить список всех переменных нет. Если вы хотите знать в определённый момент времени значение определённых переменных, то это делается элементарно через eval()
-
@Fox said in Получить список всех созданных переменных, отладка:
знать в определённый момент времени значение определённых переменных
да, хочу знать.
Не подскажите как через eval() сделать? -
@mansory333 said in Получить список всех созданных переменных, отладка:
@Fox said in Получить список всех созданных переменных, отладка:
знать в определённый момент времени значение определённых переменных
да, хочу знать.
Не подскажите как через eval() сделать?var q = eval(VAR_NEW_VARIABLE) log(q) -
@Fox ну так тоже самое
var error = [VAR_NEW_VARIABLE] = eval(VAR_NEW_VARIABLE)Короче в режиме записи не получится получить значение всех переменных, только если есть заранее подготовленный файл с переменными.
Спасибо большое за помощь)
-
@mansory333 said in Получить список всех созданных переменных, отладка:
Короче в режиме записи не получится получить значение всех переменных, только если есть заранее подготовленный файл с переменными.
В режиме "записи" как раз только и возможно получить значения всех переменных, в режиме "запуска" нельзя
-
@Fox said in Получить список всех созданных переменных, отладка:
В режиме "записи" как раз только и возможно получить значения всех переменных, в режиме "запуска" нельзя
Оказывается можно
var AllVariablesTable = Object.keys(GLOBAL) .filter(function(e){return e.indexOf("VAR_") == 0}) .reduce(function(all,one){ try { all[one.slice(4)] = eval(one) }catch(e) { all[one.slice(4)] = "undefined" } return all; },{}) log(JSON.stringify(AllVariablesTable)) -
-
@Glicjk said in Получить список всех созданных переменных, отладка:
Всем привет! Как-то раз @fox выкладывал код, который позволяет вывести в лог все переменные и их значения в виде объекта, которые есть в проекте для дебага. Не удалось найти по поиску, может кто-то поможет
Здесь же, чуть выше

