Невозможно вернуть массив, содержащий значения столбцов из таблицы ag-grid обратно в функцию

Я написал функцию, которая читает данный столбец в ag-grid и сохраняет его в массиве.

getSortedText(columnName: string){
var testArrayAsc = [];
element.all(by.css('div.ag-body-container > [role="row"]')).then(function(count) {
  console.log("Row Count= ", Object.keys(count).length);
  for (let rowNo = 0; rowNo < Object.keys(count).length; rowNo++) {
    element.all(by.css(String.Format("div.ag-body-container div[ row-index='{0}'] > [col-id='{1}']", rowNo, columnName))).map(function (Element) {
     Element.getText().then(function (result) {
       console.log("Result Asc :: " + result);
       testArrayAsc.push(result);
     });
    })
  }
}).then(function () {
    console.log("TestArrayAsc::",testArrayAsc);
    return testArrayAsc;
})
}


Я вызываю эту функцию из моего теста:

console.log('Array::', homepage.getSortedText('Betreff'));


Но я получаю "Array:: undefined" в качестве вывода.
И если я изменю свой код следующим образом:

homepage.getSortedText('Betreff').then(function (a) {
})


Затем я получаю это сообщение об ошибке в IDE: "Свойство then" не существует по типу "void" ".
Пожалуйста помоги. Заранее спасибо.

1 ответ

Решение

getSortedText ничего не возвращает, следовательно, это тип void и не имеющий then метод.

Там очень много недостающей информации, но отправной точкой является возвращение созданного вами Обещания.

return element.all(
Другие вопросы по тегам