无法在函数中获取已解析的值

时间:2017-03-07 22:00:29

标签: javascript node.js

我目前有两种方法:

  getCell(lineItemRow, columnName) {
    return this.getColumnIndexOfColumn(columnName)
      .then(function(columnIndex) {
        sleep(10000);
        return new Element(`//div[@class='ember-view scrollableTableRow'][${lineItemRow}]//div[@class='scrollableTableCell '][${columnIndex}]`)}
    );
  }

  getColumnIndexOfColumn(columnName) {
    let b = this.browser;
    return this.getColumnTitles()
      .then(function(columnTitles) {
        let titles = columnTitles.value.map(function(element) { return b.elementIdText(element.ELEMENT) });
        Promise.all(titles)
        .then(function (results) {
          var formatted = results.map(function(title) {return title.value;});
          return formatted.indexOf(columnName);
        }).then(function (value) { console.log(value); return value; })
      })
   }

我遇到的问题是,当getCell调用this.getColumnIndexOfColumn(columnName)时,解析的值是未定义的,而不是正确的索引。我可以验证formatted.indexOf(columnName)调用返回正确的索引。如何使用formatted.indexOf(columnName)的值解析getColumnIndexOfColumn?

由于

1 个答案:

答案 0 :(得分:0)

在Promise.all(标题)前面错过了一个返回,所以它没有返回回调结果。