BAG метод API BAS RMap('name').length()
-
При пустом ресурсе выдает ошибку Все данные были обработаны для ...
-
При более внимательном рассмотрении выяснилось что баг не в методе.
if(RMap("TEST").length()>0){ var arr={{TEST}} };
Если убрать строку которая берет данные из ресурса, то ошибки нет.
А проблема вот в чем
RS("TEST", true, false)! RESOURCE_220967 = _result().get() if(RMap("TEST").length()>0){ var arr=RESOURCE_220967.split(':'); };
BAS записывает чтение данных из ресурса в самом начале блока, до условия.
Переписал примерно так
_if(RMap("TEST").length()>0,function(){ RS("TEST", true, false)! RESOURCE_220967 = _result().get(); var arr=RESOURCE_220967; })!;
-
@Denis_krsk А разве баг пишется не Bug?
:D
Метод верно возвращает 0
log(RMap("test").length())
Условие тоже срабатывает верно и без ошибок:
if(RMap("test").length()>0){ log("Сработал ИФ") }else log("Не сработал ИФ")
Проблема в строке
var arr={{TEST}}
Зачем использовать костыль, когда есть метод
//Вернуть список, который содержит все элементы из ресурса. toList()
Следующий код работает так как тебе нужно было изначально:
if(RMap("test").length()>0){ var arr = RMap("test").toList() log("Сработал ИФ") }else log("Не сработал ИФ")
Работает без багов и костылей. Вот тестовый скрипт.
-
@Fox Дак я понял, что дело в получение элемента. А про метод забыл ) Да и костыль собственно сойдет )
-
@Denis_krsk Ух и любишь ты чистый JavaScript
:D