к серверу?
пример:
subscription: Subscription;
onInit () {
this.subscription = thi.inputModelChanged.pipe (debounceTime (300)). subscribe (() => requestToServer ())
}
inputModelChanged: Subject <string> = new Subject <string>;
onInputChanged (text) {
this.modelChanged.next (text)
}
как сделать проверку или подписка уже есть, и если есть то отписаться от нее
(Пользователь начинает вводить в поиске название продукта, дебаунс тайм сработает, и пойдет запрос на сервер, тогда пользователь допишет название продукта к концу и этот запрос выполнится быстрее предыдущее, таким образом данные из предыдущего запроса перекроют данные с останнбього запроса, а в поиске будет полное название продукта, поэтому было бы хорошо проверить подписка уже есть, и если есть то отписаться от предыдущее запроса)
В каком месте это было бы хорошо сделать и как?
При первой подписке создай флаг isSub = true, а потом всегда проверяй его перед следующими подписками , если отписываться будешь , меняй на false
А в каком месте нужно отписаться?
Всмысле в каком месте? Ты можешь вообще не описываться по идее )) это ты должен для себя определить
Я имеюю в виду где можно отписаться, мне нужно проверить есть ли подписка, и если есть, тогда отписаться, я питался ето сделать в методе onInputChanged, но когда я делаю unsubscribe, то то в ините почему-то не заходит в сабскрипшин
Ты спросил как сделать так, чтобы больше 1 подписки не было. Я сказал, что можно при первой подписке флаг true создать и в дальнейшем делать проверку перед подпиской, таким образом будет всегда 1 подписчик.
Если тебе надо проверить есть ли подписка и сразу отписаться , то проверяй свой флаг на true , отписывайся и меня на false
а если ми отпишемся, как тогда оно зайдет в инит, если подписки уже нет?
Обсуждают сегодня