Тоже часто возникает, во многих скриптах. Замечал такую ошибку, когда страница не прогрузилась до конца из-за прокси.
Проверить существование ресурса
-
День добрый. Стоит задача проверить ресурс на существование.
Кубиков и api (https://community.bablosoft.com/post/27369) не нашел, поэтому надеюсь на помощь.
Временным решением пользуюсь
Временным решением пользуюсь - проверяю длину ресурса, если 0 - создаю новый ресурс и добавляю в него пустую строку.
Хотелось бы обойтись без лишних данных в ресурсе. -
@Sadzurami said in Проверить существование ресурса:
День добрый. Стоит задача проверить ресурс на существование.
Кубиков и api (https://community.bablosoft.com/post/27369) не нашел, поэтому надеюсь на помощь.
Временным решением пользуюсь - проверяю длину ресурса, если 0 - создаю новый ресурс и добавляю в него пустую строку.
Хотелось бы обойтись без лишних данных в ресурсе.Что именно вы хотите проверить то? Существует ресурс с таким именем или есть ли в каком то ресурсе данные?
-
@Sadzurami said in Проверить существование ресурса:
@Fox существует ли ресурс с таким именем
А можете описать ситуацию, когда это может понадобится?
-
@Sadzurami said in Проверить существование ресурса:
@Fox для написания модулей, которые используют систему ресурсов для хранения данных
Это не ситуация, а концепт. Полагаю в модуле вы сами будете создавать локальные ресурсы, значит в этом же модуле можно организовать логику для получения названия созданного ресурса
-
@Fox название я задаю самостоятельно. Если при инициализации модуля ресурс постоянно создавать через RCreate() - данные стираются.
Ресурс нужен для работы в многопотоке, соответственно каждый поток будет инициализировать модуль в начале жизни потока, тем самым пересоздавать имеющийся ресурс.Поэтому и интересует способ узнать был ли ресурс создан заранее, чтобы не использовать RCreate() для перезаписи информации о ресурсе
-
@Sadzurami said in Проверить существование ресурса:
@Fox название я задаю самостоятельно. Если при инициализации модуля ресурс с заданным именем постоянно создавать через RCreate() - данные стираются.
Ресурс нужен для работы в многопотоке, соответственно каждый поток будет инициализировать модуль в начале жизни потока, тем самым пересоздавать имеющийся ресурс.Поэтому и интересует способ узнать был ли ресурс создан заранее, чтобы не использовать RCreate()
Такого функционала нет, но узнать существует ли ресурс можно несколькими способами. Например сразу после создания поместить в него какие либо данные и проверить их существование через
RMap("res").at(0) или RMap("res").length()либо можно добавить проверку через глобальную переменную. То есть перед созданием ресурса проверять значение глобальной переменной, если значение пустое, значит создаём ресурс и записываем в глобальную переменную любую строку.
-
@Sadzurami Рылся в исходниках и вспомнил про эту тему.
Можно проверить вот так
JSON.parse(ScriptWorker.PickResources())['res_name'] !== undefined