Как отписаться от наблюдаемой RxJS 5?

Я использовал этот шаблон:

func myObservable() Observable<boolean> {
    ...
}

func myFunc() {
    myObservable().subscribe((cond: boolean) => {
        if (cond) {
            // How do I unsubscribe here?
        }
    });
}

Однако я не вижу способа отменить подписку, тем самым, возможно, создание утечки памяти.

Причина, по которой я спрашиваю, заключается в том, что HTTP-клиент Angular 2 использует тот же шаблон - хотя я считаю, что он как-то автоматически отписывается, и я хотел бы сделать то же самое.

1 ответ

Решение

Вы должны сделать что-то вроде этого:

func myFunc() {
   var subscription = myObservable().subscribe((cond: boolean) => {
       if (cond) {
          // How do I unsubscribe here?
           subscription.unsubscribe()
       }
   });
}
Другие вопросы по тегам