У меня есть эта функция машинописного /Javascript:
wordFormRowClicked = (wf): ng.IPromise<any> => {
var self = this;
if (this.wordFormIdentity != wf.wordFormIdentity) {
angular.forEach(self.word.wordForms, function (wf, key) {
var wordFormNgForm = 'wordFormNgForm_' + wf.wordFormIdentity;
if (self[wordFormNgForm].$pristine) {
;
} else {
self.wordFormUpdate(wf).then((): any => {
self[wordFormNgForm].$setPristine();
});
}
});
this.wordFormIdentity = wf.wordFormIdentity;
}
}
self.wordFormUpdate(wf) возвращает обещание и поэтому дает правильные типы возвращаемых данных, но если wordFormUpdate не вызывается, то он не возвращает обещание, и также существует вероятность того, что будет вызываться несколько wordFormUpdates, и я должен убедиться, что они все закончены перед возвращением.
Может ли кто-нибудь предложить, как я могу это сделать?
Функция wordFormRowClicked
должна вернуть обещание:
var _this = this;
wordFormRowClicked = function (wf) {
var self = _this;
var promises = [];
if (_this.wordFormIdentity != wf.wordFormIdentity) {
angular.forEach(self.word.wordForms, function (wf, key) {
var wordFormNgForm = 'wordFormNgForm_' + wf.wordFormIdentity;
if (self[wordFormNgForm].$pristine) {
;
}
else {
var updatePromise = self.wordFormUpdate(wf).then(function () {
return self[wordFormNgForm].$setPristine();
});
promises.push(updatePromise);
}
});
}
return $q.all(promises);
};
wordFormRowClicked.then(function () {
//at this point all promises are resolved
this.wordFormIdentity = wf.wordFormIdentity;
});