Der folgende Code prüft, ob ein Feld vom Typ datei ist und ob eine tatsächliche Datei darin enthalten ist. Wenn dies der Fall ist, laden Sie das Foto hoch und aktualisieren Sie die Gebäude. Wenn das nicht der Fall ist, aktualisieren Sie die Gebäude, die alten Fotos mit:Auslösen einer Funktion nur in der letzten Iteration einer ForEach-Schleife
fields.forEach(field => {
building[field.name] = field.value || this.building[field.name]
if (field.type === 'file' && !util.isEmpty(field.photo.file)) {
api.uploadPhoto(field.photo.file).then(resp => {
building[field.name] = resp
this.updateBuilding(building)
})
} else {
building.logo = this.building.logo // to prevent updating logo
building.floorplan = this.building.floorplan // to prevent updating logo
this.updateBuilding(building)
}
})
Es funktioniert gut, aber da this.updateBuilding(building)
in einer Schleife ist, es wird ein Vielfaches genannt.
Wie wird es gemacht, so dass es nur in der letzten Iteration aufgerufen wird?
Ich kann nicht glauben, dass ich JavaScript seit Jahren gemacht habe und ich wusste nicht, dass 'forEach' einen Index und einen Array-Wert hat. Vielen Dank! – alex
Hat mich überrascht, als ich davon erfuhr! –