我试图从涉及Promises的递归函数返回值。 这是示例方法:
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);
}
});
}
}
我无法返回&#39; i&#39;正确!有什么方法可以实现这个目标吗?
谢谢,
Sakshi
答案 0 :(得分:0)
你从一个承诺内部返回,但承诺反过来又没有给函数返回任何东西。你可以通过返回第一个promise来解决这个问题,而第一个promise又会返回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>
}