我通過AngularJS開發了這是app.Domain.GenericModel.EntityBase(我一般模型) 此相同的簽名許多異步函數是一個示例:返回無極< void >,而不是承諾<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;
}
然後我試圖調用一些服務,這類似於前一個與鏈promises.So,我得到這個錯誤:「類型IPromise是不能分配給鍵入IPromise,類型EntityBase是不能分配給類型爲void」
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);
});
我搜索了很多這個困境和所有我有,一個不起眼的方法,通過類型斷言,我主要基於編譯器的欺騙或類似的東西,將我的函數的返回值轉換爲常見模式「IPromise」。 如果其他人有一個想法,我沒有理解這個訣竅。不管它有效與否,他都可以澄清它。
我正在尋找如何執行循環的每次迭代必須執行的鏈接的承諾..這就是全部 –