【发布时间】:2021-11-07 08:20:11
【问题描述】:
我正在尝试在 .then() 命令中设置一个变量,该命令在其外部声明,并且在整个块完成后(.then())我将返回该值。
问题是,当我返回值时,变量是未定义的,但是在 .then() 块中,变量被加载了。
示例代码如下:
public getValueFromElement(): string {
cy.log("Obtaining the Value");
let myNumber: string; // Here I'm declaring my variable
cy.get(this.labelWithText).then(($element) => {
let originalLabelText: string = $element.text();
let splittedText: string[];
splittedText = originalLabelText.split(": ");
myNumber = splittedText[1]; // Here I'm assigning the value
cy.log("Inside the THEN" + myNumber); //This logs the number correctly
});
return myNumber; // But after I return it using the function, the value is `undefined`!
}
我假设这可能与异步/同步问题有关,因为在调用函数时会立即执行 return 语句,并且 .then() 创建的承诺仍在运行,但我没有不知道怎么解决。
您知道我如何等待.then() 先完成再返回值吗?
谢谢!!
【问题讨论】:
标签: javascript typescript promise cypress