@FastSpace said in Исправить подгрузку в инспекторе переменных:
@thepappo бомбит, а ещё бомбит когда значения в переменных не изменяются визуально
ответь пожалуйста в ЛС
@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 выкладывал код, который позволяет вывести в лог все переменные и их значения в виде объекта, которые есть в проекте для дебага. Не удалось найти по поиску, может кто-то поможет
Здесь же, чуть выше