将promise加载到数组中

时间:2015-08-11 18:13:41

标签: arrays angularjs protractor

我有一个显示到控制台的名称数组,如下所示:

Regex.Match(data, "(?<=Compiled:\s)([^-]*)\s-)", RegexOptions.IgnoreCase).ToString

在我的页面上,根据您选择过滤器选项,名称可以按升序或降序排序。我想将myLists数组读入变量数组,以便我可以反转顺序并在过滤时对其进行比较。我不太清楚如何做到这一点,因为我是angularjs的新手,我的java / js代码显然不会在这里工作。

1 个答案:

答案 0 :(得分:1)

根据您的问题,我了解您已经能够读取myLists数组并将输出打印到控制台。要将其复制到另一个数组,您只需将myLists数组复制到变量数组中,然后对它们进行排序。以下是一个示例代码 -

var varArray; //declare variable array
myLists.map(function(myListArray){
  return myListArray.getText().then(function(mylist){
    return mylist;
  });
}).then(function(mylist){

  //copy myLists array into varArray
  varArray = mylist;

  //Sort the variable array in ascending order use the below function
  varArray = varArray.sort();
  expect(varArray).toEqual(mylist); //check for the equality of array

  //Reverse sort variable array in descending order
  varArray = varArray.reverse();
  expect(varArray).toEqual(mylist); //check for the equality of array
});

reverse()和sort()都是内置的javascript函数。但是在reverse之前使用sort,因为reverse()方法只是反转数组中元素的顺序。

要将页面滚动到特定元素,请使用以下javascript命令 -

var ele = yourElement;
var eleLoc;
ele.getLocation().then(function(loc){
  eleLoc = loc; //get the element location in a variable
});
//Scroll to the element location
browser.executeScript('window.scrollTo('+eleLoc.x+','+eleLoc.y+');')
.then(function(){
  //try getting the text here
});

希望这有帮助。