you_are_enot
@you_are_enot
Пограммист любитель

Как выйти из цикла for?

Как выйти из цикла при выполнении условия?

for(let i = 0; i < elements.length; i++){
        elements[i].findElement(by.xpath('.//span')).getAttribute('innerText').then(function(text){
            if(~'Бадминтон'.indexOf(text)){
                console.log(text);
                // Выход из цикла перебора
            };
        });
    };
  • Вопрос задан
  • 10165 просмотров
Решения вопроса 2
@Artray
async function

for...of


(async () => {
    // ...
    
    
    for(const element of elements) {
        const text = await element.findElement(by.xpath('.//span')).getAttribute('innerText');

        if(~'Бадминтон'.indexOf(text)) {
            console.log(text);
            break;
        }
    }
    
    // ...
})()
Ответ написан
Комментировать
Xuxicheta
@Xuxicheta
инженер
У вас не получится выйти из цикла, потому что условие у вас проверяется асинхронно. Сначала пробежит цикл, сделает ряд запросов, а потом они все начнут выполняться. Вам нужно делать следующий запрос после окончания предыдущего, чтобы иметь возможность прервать цикл.
Если версия ноды >= 10, то лучше для этого использовать for..await цикл.
Другой путь - это использовать reduce + флаг.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mrAlexRabota
Frontend developer
let isValid = true;

for( let i = 0; isValid && i < array.length; i++) {
// do something
// if you wanna break then set isValid = false;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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