Ich versuche, eine Put-Anfrage an eine API aus Array, die ich habe. Der Post will ein Objekt, und ich habe ein Array von Objekten. Was ich mache, ist eine Schleife, die die Länge meines Arrays von Objekten angibt, die die Methode in meinen Dienst rufen. Das Problem ist, dass nur der erste funktioniert und der Rest nicht funktioniert. Soll ich etwas wie Versprechen versprechen und es dann rekursiv nennen?So rufen Sie eine Post-Methode von api in einer Schleife auf Winkel
Hier lasse ich meine Methode die api nennen:
onUpdate() {
for (var i = 0; i < this.conditionsToUpdate.length; i++) {
this.ruleService.updateConditionsFromRule(this.rule.id, this.conditionsToUpdate[i])
.then(_ => {
this.notificationService.addToast('Condition Updated!', '', 2)
})
.catch(err => this.notificationService.handleError("Could not update the
condition!"))
}
}
schließlich auf meinem Dienst Ich habe meine Anfrage:
updateConditionsFromRule(idRule: number, condition: ConditionUpdate):Promise<any> {
return this.http.post(`${this.organizationId}/rules/${idRule}/conditions`, condition)
.toPromise()
.then(res => {
const response = <{ id: String, error: IError[] }>res.json();
if (!!response && !!response.error) {
return Promise.reject(response.error)
} else {
return Promise.resolve(response)
}
}).catch(err => Promise.reject(err));
}
Und wie gesagt, es gibt mir nur den ersten Beitrag wir tun, der Rest wird nicht geschaffen.
Vielen Dank!