Javascript Array.toString在循环外返回空

Javascript Array.toString在循环外返回空,javascript,arrays,tostring,cypress,Javascript,Arrays,Tostring,Cypress,我是JavaScript新手,如果这是一个愚蠢的问题或重复,我很抱歉 我有一个数组和循环,在循环中我每次都记录,它将返回以下内容: A1,A1 A2,A1 A2 A3。。。依此类推,直到完成循环 最后,我尝试记录最终的数组值,它返回空值 有什么想法吗 var testArray: any = new Array(); var test: any; cy .get('element') .each(function ($el, index) { test=

我是JavaScript新手,如果这是一个愚蠢的问题或重复,我很抱歉

我有一个数组和循环,在循环中我每次都记录,它将返回以下内容: A1,A1 A2,A1 A2 A3。。。依此类推,直到完成循环

最后,我尝试记录最终的数组值,它返回空值

有什么想法吗

  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())
谢谢

您可以使用
.then()
;引述:

.then()
的建模方式与JavaScript中承诺的工作方式相同。回调函数返回的内容将成为新的主题,并将流入下一个命令(undefined除外)

试着这样做:

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

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

它是异步的。使用
cy.get().each()。然后(()=>cy.log())
我对cypress不太熟悉,但看起来选择器根本没有返回任何元素,或者
.get('element')
是异步的,并且在循环结束之前执行
控制台.log
。但是正如我所说的,我不熟悉Cypress,这是一个异步问题。尝试使用.then()方法