-3
votes

Je veux casser la boucle

home_page.activityOnAgenda().then(function (items) {
       var len = items.length;
       for ( i = 0; i<=12;i++ ) {
           browser.element(by.xpath("//virtual-list/div/div["+len+"]")).click();
           browser.sleep(3000);
           var flag = false;
          home_page.activity("My Scrolling").isPresent().then( function (value) {
          if(value===true){
              break;}
          })

       browser.element(by.xpath("//virtual-list/div/div["+len+"]")).click();

   })
I am not able to use break statement  inside promise. If i use break statement outside promise then it doesn't execute if block which is outside for loop

3 commentaires

Essayez d'utiliser retour


cela ne fonctionnera pas non plus car il fonctionne de manière synchrone là où la boucle pour la boucle n'attendra pas la promesse de remplir


@priya Faites votre i supérieure à 12 à l'intérieur de l'IF en tant que i = 13 . de sorte que la boucle se termine. Je ne sais pas si c'est la bonne façon.


3 Réponses :


-2
votes

Vous ne pouvez pas casser la boucle comme celle-ci, car le rapport alors est probablement exécuté uniquement après la fin de la boucle. Si vous voulez vraiment casser la boucle à l'aide de ce rappel, vous pouvez utiliser async / attendre : xxx

aussi, je ne sais pas ce que le navigateur < / Code> Objet est, mais je parie que c'est la méthode est également asynchronisé et besoin attendre : xxx


0 commentaires

0
votes

Utilisez async / attendre pour utiliser des boucles séquentielles autour des promesses: xxx

Si vous ne pouvez pas utiliser cette syntaxe, utilisez l'utilisation un transpilateur ou aller pour une approche récursive qui fonctionne jusqu'à ce qu'il trouve l'élément.


0 commentaires

0
votes

Cela se produit car les fonctions peuvent casser des boucles qui sont dans la fonction et non en dehors de la fonction.
L'instruction alors code> exécute la fonction lorsque la promesse est résolue.
Voici un exemple.

p>

  for (i = 0; i !== 10; i++) {
    console.log(i)
    let resolved = await Promise.resolve(1)
    if (resolved === 1) break;
  }


0 commentaires