2016-06-10 8 views
0

Ich bin in Knoten beginnen und ich weiß nicht, wie ich Versprechen in diesem BeispielDie korrekte Umsetzung verspricht mit Knoten mit es6

  • Lese Array pokemons
  • Anforderungsdaten mit api pokemon
  • implementieren
  • Schreibantwort in neue Dateien

Knoten: v6.1.0

ES6

Ich habe diesen Code

ich das Konzept verstehen die promises, ist aber dificult für mich Versprechen in diesem Beispiel implementieren.

Fehler:

Create a file pokemon-2 but I need create a file for each response

+0

Mit dem Code, den Sie zur Verfügung gestellt haben, sind Ihre Versprechen korrekt implementiert, so dass ich nicht sicher bin, wo die Frage ist? – peteb

+0

ja, aber meine Ausführung funktioniert nicht gut 'readPokemon' @peteb –

+0

Warum haben Sie die Fehlermeldung entfernt? –

Antwort

0

der Fehler durch die asynchrone Ausführung mit der for-Schleife gekoppelt verursacht wird. Wenn die Ausführung zu dem Teil kommt, an dem Sie writeResponse aufrufen, wurde die Schleifenvariable i auf 2 erhöht, so dass alle writeResponse Aufrufe effektiv arrPokemon[2] als ihren ersten Parameter erhalten.

Für eine schnelle Lösung Sie so etwas wie dies könnte versuchen:

for(let i= 0; i < arrPokemon.length;i++){ 
    console.log(arrPokemon[i]) 
    pokemon(arrPokemon[i]).then(responses => writeResponse(arrPokemon[i],responses)).catch(err => console.log(err)) 
} 
+0

ja, aber, erstellen Sie eine Datei 'pokemon-2', aber ich muss für jede Antwort eine Datei erstellen –

+2

Warum nicht nur' für (lassen Sie i = .....) 'stattdessen? –

+0

Das ist, was das tut. Ich habe den Code mit dieser Änderung ausgeführt und die Ergebnisse sind wie gewünscht. – DonSteep

0

(Posted Antwort im Namen des OP):

  • ändern function pokemon(){} ->pokemon()=>{}

  • Ändern var for(var i ...) ->for(let i)