Как вернуть целое число в качестве обещания из внешней функции в транспортире?

Просто чтобы показать разницу между экспортируемой переменной, находящейся в среде (env), и неэкспортируемой переменной, не находящейся в среде:

Если я это сделаю:

$ MYNAME=Fred
$ export OURNAME=Jim

, тогда в env появляется только $ OURNAME. Переменная $ MYNAME отсутствует в env.

$ env | grep NAME
OURNAME=Jim

, но переменная $ MYNAME существует в оболочке

$ echo $MYNAME
Fred
0
задан Leonid Makhnovskiy 17 January 2019 в 14:24
поделиться

2 ответа

Мне удалось решить мою проблему с помощью цикла for. Моя внешняя функция теперь выглядит следующим образом:

MyExternalFunction(numOfLines)  {
    var totalNumToAck =0;
    var deferred = protractor.promise.defer();

    browser.wait(function () {
       return SomeElementThatIKnowIsPresent.isPresent();
    }, 50000).then(function () {
    for (var i = 0; i < numOfLines; ++i) {  
            //code to analyze the page      
            if (somecondition) {
                totalNumToAck++;
                }

    }
    }).then(function () {
        console.log('found' + totalNumToAck + 'elements');
        deferred.fulfill(totalNumToAck);
    });

    return deferred.promise;
};

Это гарантирует, что цикл for завершится и только тогда deferred.fulfill (totalNumToAck); случится. Спасибо за всех, кто помог.

0
ответ дан Leonid Makhnovskiy 17 January 2019 в 14:24
поделиться

Вы можете попробовать следующую попытку

MyExternalFunction(numOfLines)  {
    return new Promise(function (resolve, reject) {
        var totalNumToAck = 0;

        for (var i = 0; i < numOfLines; ++i) {
            //code to analyze the page      
            if (somecondition) {
                totalNumToAck++;
            }
        }
        console.log('found' + totalNumToAck + 'elements');
        resolve(totalNumToAck);
    })
};
0
ответ дан DublinDev 17 January 2019 в 14:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: