Array.toString возвращает пустой за пределами цикла - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в JavaScript, так что извините, если это глупый вопрос или дубликат.

У меня есть массив и L oop, в l oop я регистрируюсь каждый раз, и он будет вернуть что-нибудь в соответствии с: A1, A1 A2, A1 A2 A3 ... и так далее, и так далее, пока не завершится l oop.

В конце я пытаюсь записать окончательное значение массива, и оно возвращается пустым.

Есть идеи?

  var testArray: any = new Array();
  var test: any;

  cy
    .get('element')
    .each(function ($el, index) {
      test= $el.text();
      testArray.push(test);
      cy.log(testArray.toString())
    })
  cy.log(testArray.toString())

Спасибо

1 Ответ

1 голос
/ 12 февраля 2020

Вы можете использовать .then(); цитирование из документации на кипарис для .then():

.then() смоделировано так же, как работа Promises в JavaScript. Все, что возвращается из функции обратного вызова, становится новым субъектом и перейдет в следующую команду (за исключением неопределенного).

Попробуйте что-то вроде этого:

var testArray: any[] = new Array();

cy
    .get('element')
    .each(($el) => {
        testArray.push($el.text());
        cy.log(testArray.toString());
    ).then(() => cy.log(testArray.toString())
});
...