在子 .then 中访问父 .then 的变量,嵌套的承诺,量角器

Accesing variable of parent .then in child .then , nested promises, protractor

如何从子 .then 内部访问变量,该变量在父 .then

内部定义

您可能已经猜到了,我是 javascript 的新手。我只知道同步思维

我现在需要一个快速的解决方案。我读过嵌套的厄运金字塔和链式承诺,但无法理解它。如果你现在能给我一个工作代码,我将不胜感激,这样我就可以访问子 .then

中的 items[i] 变量
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); 
              }
          });
   }
});

一次获取所有元素的属性,可以使用

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;
        });
});