Доступ к переменной родительского. Затем в дочернем. Затем, вложенные обещания, транспортир - PullRequest
0 голосов
/ 08 мая 2020

Как получить доступ к переменной из дочернего элемента .then, переменная определяется внутри родительского элемента .then

Как вы уже догадались, я новичок в javascript. Я знаю только синхронное мышление.

Мне сейчас нужно быстрое решение. Я читал о вложенной пирамиде обреченности и связанных обещаний, но не могу осмыслить это. Я был бы очень признателен, если бы вы дали мне рабочий код, чтобы я мог получить доступ к переменной items[i] внутри дочернего элемента .then

var options = element.all(by.xpath("//....."));

options.then(function(items){
   for(var i=0; i<items.length;i++){
      items[i].getAttribute("disabled").then(function(attr){
              if(attr){ // do something based on attr value
                  var option = items[i];    
                  // unable to access items => option is undefined
                  console.log(option); 
              }
          });
   }
});

1 Ответ

1 голос
/ 08 мая 2020

Чтобы получить атрибут сразу всех элементов, вы можете использовать

var disabledArray = element.all(by.xpath("some_xpath")).getAttribute("disabled");
disabledArray.then(function(disabledValues){
  console.log(disabledValues); // prints the array of attribute values [true, true, false, ...etc]
});

Чтобы отфильтровать список элементов на основе некоторого условия, вы можете использовать

var disabledElements = element.all(by.xpath("some_xpath")).filter(function(ele) {
       return ele.getAttribute("disabled").then(function(isDisabled){
           return isDisabled === true;
        });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...