【发布时间】:2019-06-27 08:53:53
【问题描述】:
在我的量角器应用程序中,我有以下方法,它应该返回 boolean 值,具体取决于它是否找到元素。
async getTheValueOfEntery(entery: string) {
var value = await element(by.xpath(entery))
.isPresent().then((isExist) => {
isExist;
});
return value;
}
但是,问题是,它总是返回undefined,虽然我确信它应该返回true。
那么,我的方法有什么问题?
更新:
确实,我需要有一个调用链,胖函数,所以我的函数最完整的版本如下:
async getTheValueOfEntery(entery: string) {
var value = await element(by.xpath(entery))
.isPresent().then((isExist, entery: string) => {
isExist ? element(by.xpath(entery)).getText() : 0;
});
return value;
}
但是,我无法将 entery:string 传递给第二个 lambda。
【问题讨论】:
-
你为什么要这么做
.then((isExist)=>{isExist;});,你想达到什么目的?避免awaiting a.then(…)chain! -
是的,但你仍然应该做简单的
const isExist = await element(by.xpath(entery)).isPresent(); if (isExist) return Number(await element(by.xpath(entery)).getText()); else return 0;。 -
如果您有新问题,请提出新问题,但不要将您原来的问题改成其他问题。这使得所有其他厌倦了解决您的原始问题的答案都错了。
标签: javascript typescript ecmascript-6 promise