从涉及Promise的递归函数返回值

时间:2015-02-27 10:50:44

标签: protractor

我试图从涉及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

1 个答案:

答案 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>
        }