Пока какой-то фрагмент кода может получить доступ к объекту, объект не будет собирать мусор.
Так что да, в зависимости от реализации, Observable может быть выделен c ', хотя какой-то фрагмент кода по-прежнему содержит ссылку на обратный вызов и, следовательно, может вызвать его. Однако, если реализация такова, между наблюдаемым и обратным вызовом нет никакой зависимости, и, следовательно, код будет работать нормально. Так что это не очень плохой сценарий.
Я полагаю, однако, что Observable не только предоставляет метод .subscribe
, но и некоторые другие свойства для управления обратными вызовами. В этом случае код, который будет вызывать когда-нибудь, на самом деле содержит ссылку на Observable, которая сама где-то содержит ссылку на обратный вызов. В этом случае обратный вызов будет только g c 'ed, если наблюдаемое получило g c' ed, и это происходит только в том случае, если код больше не содержит ссылку, например, если он прекращает генерировать новые события.