【发布时间】:2018-10-29 16:35:41
【问题描述】:
我正在尝试解决我的问题,但我没有任何想法。 我想创建函数来根据类型变量返回值数组。
我想检查发送给函数的参数是字符串数组还是webelements数组,我想将此数组返回给其他函数进行排序。
这是我的代码:
private static returnByType(unSortedElements) {
var i = 0;
var unSorted = [];
if (typeof unSortedElements[0] === 'string') {
unSorted = unSortedElements;
return unSorted;
} else {
return unSortedElements.each((eachName) => {
eachName.getText().then((name) => {
unSorted[i] = name;
i++;
})
})
}
}
如果我将字符串数组传递给这个函数,它会返回带有这个字符串的数组,但是当我传递一个 webelements 列表时,我得到一个空数组(在 else 块中)。 我应该如何从 else 块返回 unSorted?
【问题讨论】:
-
首先,不能同步返回异步函数调用的结果。如果您在函数中进行异步函数调用,则还需要在调用者中异步等待。但是由于让函数返回同步或异步结果是很疯狂的,因此您应该将其标准化为始终返回异步结果,即使对于字符串情况也是如此。
标签: javascript typescript promise protractor automated-tests