Я унаследовал приложение, написанное с использованием Knockout для пользовательского интерфейса, и мне интересно, каков эффект от нескольких подписок на одно наблюдаемое свойство?
У меня есть наблюдаемая, которая имеет 2 подписки. Войдя в консоль, я вижу, что обе подписки срабатывают одна за другой.
Используя следующий пример: (для краткости это очень урезано, в полном коде есть много логики, часть из которых дублируется)
self.VisitDate = ko.observable();
self.VisitDate.subscribe(function (newValue) {
self.ListItemRemoved(removed);
});
self.VisitDate.subscribe(function (newValue) {
self.Basket.VisitDate(newValue);
});
Я думал, что должен увидеть какую-то ошибку из-за множественных подписок, но, кажется, все работает нормально, но я не могу найти четкого объяснения, почему это нормально делать
Я просто пытаюсь выяснить следующее:
Нормально и приемлемо ли иметь несколько подписок на одну наблюдаемую?
Есть ли какое-то основное влияние на это, то есть условия гонки?
Нужно ли когда-либо иметь несколько подписок, чтобы достичь чего-то, чего нельзя достичь за одну подписку?
Я понимаю, что это может быть немного застенчиво в деталях, но на самом деле я просто пытаюсь понять, как нокаут делает вещи под прикрытием, чтобы понять, стоит ли мне пытаться реорганизовать этот код или нет.