[EDIT unten]Verständnis Reagieren indiaProgrammAblauf - Loops
Hier ist der aktuelle Code ist:
for(toy of toys) {
fetch(url, {headers: headers})
.then((response) => response.json)
.then((responseJson) => {
<insert toy to database>
})
}
Der obige Code nicht richtig schreiben Spielzeug, weil die Schleife, bevor das Innere tut holen abgeschlossen ist. Wie implementiere ich das richtig, damit ich Spielzeuge mit responseJson Eigenschaften richtig in die Datenbank einfügen kann? Mit anderen Worten, wie kann ich warten, bis der Abruf beendet ist, bevor ich mit der Schleife fortfahre?
[PREVIOUS POST]
Ich habe den folgenden Code:
function hello(callback1) {
for(var i = 0; i <= 100; i++){
console.log(i)
}
callback1()
}
function callback1() {
console.log("hello")
}
Meine Frage ist, wird callback1
für die Schleife warten oder nicht zu beenden? Hier
ist ein zweites Szenario:
function hello() {
for(var i = 0; i < 100; i++){
console.log("apples")
}
for(var i = 0; i < 100; i++){
console.log("peaches")
}
}
Wird der Ausgang sein:
apples
apples
apples
apples
...
peaches
peaches
peaches
...
oder
apples
apples
peaches
apples
peaches
...(in any order since they execute at the same time)
Ich habe eine harte Zeit, die das Verständnis der Fluss von reagieren nativen Programme, wie ich die lineare Ausführung von Codes gewohnt bin. Wenn Sie auch Lesungen für Dummies vorschlagen können, wäre das großartig.
Was hält Sie davon ab, nur diesen Code zu testen? Oder wenn Sie es getestet haben, wo die Ergebnisse anders als erwartet waren? (Was bringt Sie auch dazu, dass diese Funktionen nicht nacheinander ausgeführt werden?) – UnholySheep
Ja, warum nicht ausprobieren? Es gibt Javascript-Workbenches im Internet, um diese Art von Code direkt im Browser zu testen. Alle Sachen, die Sie hier zeigen, sind ziemlich einfach, nichts asynchrones. Einige komplexere Beispiele, z.B.hier https://stackoverflow.com/questions/16336367/what-is-the-difference-between-synchronous-and-asynchronous-programming-in-node –
Danke für die Beantwortung! Ich führe einen ähnlichen Code aus, aber ich bekomme nicht die Ergebnisse, die ich erwarte. Der Code scheint die Schleifen gleichzeitig auszuführen. Ich denke, dass die Funktionen nicht sequentiell ausgeführt werden, weil das Javascript asynchron ist. Ich habe dieses Konzept nie wirklich verstanden. –