2017-06-15 1 views
0

warum funktioniert meine Schleife nicht funktioniert? Diese Schleife macht alles am Anfang. Ich bekomme Json in HammaPokemon-Funktion und ich bekomme von z = 11.Javascript für Schleife ist am Anfang

console.log(z); 
    for(var z=1; z<11; z++){ 
    console.log(z); 

    var pokeid=$("#pokeid").val(); 
    HamtaPokemon(z).then((data)=>{ 
     console.dir(data); 
     $("h1").text(data.name); 
      var pokId = "pokId" + z; 
      var pokName = "pokName" + z; 

      var pokImage = "pokImage" + z; 
      (pokId).toString() ; 
      (pokName).toString(); 
      (pokImage).toString() ; 
      console.log(z); 
     //document.getElementById('pokId').innerHTML = data.id; 
    //document.getElementById('pokName').innerHTML = data.name; 
    //document.getElementById("pokImage").innerHTML= '<img src=http://img.pokemondb.net/artwork/'+data.name+'.jpg>'; 


     $("h4").text(data.id); 


    }); 

}

enter image description here

+0

Sie möchten eine Funktion ('HammaPokemon.then (...)') auf jedes Element in einer Liste anwenden? – Ben

+0

genau, für jeden Artikel – reg

Antwort

0

Sie brauchen eine Nutzenfunktion, die Ketten, die Versprechen zu schreiben.

z.

function asyncForEach(items, cb) { 
 
    return items.reduce((p,c) => { 
 
     return p.then(value => cb(c)); 
 
    }, Promise.resolve()); 
 
} 
 

 
var items = [1,2,3,4,5,6,7,8,9,10,11]; 
 

 
function HamtaPokemon(z) { 
 
    console.log(z); 
 
    return Promise.resolve(z); 
 
} 
 

 
function cb(z) { 
 
    return HamtaPokemon(z) 
 
     .then(data => { /* ... */}); 
 
} 
 

 
asyncForEach(items, cb) 
 
    .then(result => console.log(result));

sie gleichzeitig auch die oben könnte modifiziert werden, auszuführen. Aber ich habe sequentielle Verarbeitung angenommen. Sie müssen auch über asynchronicity in JavaScript lesen.

+0

vielen Dank, liebe dich – reg