同時に呼び出すことのできるサービスコールのリストを持っていますが、他の1つのコールは呼び出されなければなりません。 。私はこれを設定して、他のコールは.then(function() {})
コールのブロックまで発生しませんでした。 Chrome Dev Toolsをチェックして(そしてSqlエラーに基づいて確認を得る)、then節のすべての呼び出しが前に実行されています。私はここで間違って何をしていますか?元の機能の前にthen節の角砲撃機能
var promises = [];
if (this.partner.customerId > 0) {
if (this.isDirty('ipn.individualPartnerName')) {
promises.push(this.partnerEditService.updateIndividualName(<Interfaces.IIndividualPartner>this.partner));
}
if (this.isDirty('bpa.mailingAddressForm') || this.isDirty('bpa.streetAddressForm')) {
promises.push(this.partnerEditService.updateAddresses(this.partner));
}
if (this.isDirty('bn.businessName')) {
promises.push(this.partnerEditService.updateBusinessName(<Interfaces.IBusinessPartner>this.partner));
}
if (this.isDirty('rc.individualPartnerResponsibilities') || this.isDirty('rc.businessPartnerResponsibilities')) {
promises.push(this.partnerEditService.updateResponsibilities(this.operation, this.partner));
}
}
this.partnerAddRepository.addExisting(this.operation.operationId, this.partner.customerId)
.then(() => {
this.executeSaves(promises);
});
executeSaves = (promises) => {
this.$q.all(promises)
.finally(() => {
this.$mdDialog.hide(this.partner);
});
}
そして、ここではpartnerAddRepo.addExisting機能です:
partnerAddRepository.addExisting
コールが解雇される前ので、4つの異なるサービスコールが含まれている
executeSaves
中のものは、呼び出されている
addExisting = (operationId: number, partnerId: number) => {
return this.$http.put(`my/path/to/operation/${operationId}/partner/${partnerId}`);
};
、なぜ?
ええと、下向きの説明に注意してください。 – ganders
タイミングが取れますか?あなたはそれらの約束を配列に押し込んでいるだけでなく、約束を返すものは何でも発射します。 – lintmouse