ich durch AngularJS viele asynchronen Funktionen mit derselben Signatur entwickelt, die app.Domain.GenericModel.EntityBase (mein generisches Modell) Dies ist ein Beispiel:Versprechen Rückkehr < void > statt Versprechen <any>
get(resource: string): ng.IPromise<app.Domain.GenericModel.EntityBase[]> {
var self = this;
var deferred = self.qService.defer();
self.httpService.get(resource).then(function (result: any) {
deferred.resolve(result.data);
}, function (errors) {
self.exception = new app.Exceptions.Model.Exception(errors.status, errors.statusText);
deferred.reject(self.exception);
});
return deferred.promise;
}
ich dann versucht, einige Dienste zu nennen, die mit verketteten promises.So dem vorherigen ähnlich sind, wie ich diesen Fehler habe: „Typ iPromise nicht belegbar ist iPromise, Typ EntityBase ist nicht zuordenbar zu Typ void zu geben“
var self = this;
var promise = self.$q.when();
promise = promise.then(() => {
return self.EcritureService.get(critureToSave);
}).then((compte: EntityBase) => {
return self.CompteService.getSingle(Number(data.compte));
}).then((EntityBase) => {
currentAccount.montantCpt = currentAccount.montantCpt + montant;
return self.CompteService.update(currentAccount:EntityBase);
});
Ich suche viel nach diesem Dilemma und allem, was ich habe, eine unauffällige Methode, um die Funktionen meiner Funktionen in das gemeinsame Muster "IPromise" durch Typ Zusicherung, die meist auf der Täuschung des Compilers oder etwas Ähnliches zu konvertieren. Ich habe diesen Trick nicht verstanden, wenn jemand anders eine Idee hätte ... könnte er es klären, egal was es effizient ist oder nicht.
Ich bin auf der Suche nach wie Chained Versprechungen ausgeführt werden, die für jede Iteration der Schleife ausgeführt werden müssen. Das ist alles –