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


Log in to reply
 

  • 6
  • 2
  • 4
  • 4
  • 17
  • 4
  • 7
  • 1