Protractor 从包含承诺的递归函数返回值
我试图从包含承诺的递归函数返回值。 下面是示例方法:Protractor 从包含承诺的递归函数返回值,protractor,Protractor,我试图从包含承诺的递归函数返回值。 下面是示例方法: getRecursionValue = function(count, i, num, isFound) { if (i < count && !isFound) { somePage.someNum.then(function(numVal) { if (numVal == num) { console.log('Matched at i
getRecursionValue = function(count, i, num, isFound) {
if (i < count && !isFound) {
somePage.someNum.then(function(numVal) {
if (numVal == num) {
console.log('Matched at index: ' + i);
<RETURN VALUE OF I>
} else {
element(by.css('css.for.next.link')).click();
utils.getRecursionValue(count, i + 1, num, false);
}
});
}
}
我无法正确返回'I'的值!有什么建议可以达到这个目的吗
谢谢,
Sakshi您是从一个承诺内部返回的,但该承诺反过来不会向函数返回任何内容。您可以通过返回第一个承诺来解决此问题,该承诺将返回i的值:
getRecursionValue = function(count, i, num, isFound) {
if (i < count && !isFound) {
return somePage.someNum.then(function(numVal) {
if (numVal == num) {
console.log('Matched at index: ' + i);
<RETURN VALUE OF I>
}
我认为utils.getRecurrisonValue行也需要加上return前缀。感谢P.T.这实际上解决了这个问题。但我真的不明白它是怎么工作的!