Что такое эквивалент RxSwift 3.0 для AnonymousDisposable из RxSwift 2.x?
Документация ReactiveX.io использует AnonymousDisposable
, который был в RxSwift 2.x, но является нерешенным идентификатором в RxSwift 3.0. Что я должен использовать вместо этого?
let source = Observable.create { observer in
for i in 1...5 {
observer.on(.Next(i))
}
observer.on(.Completed)
// Note that this is optional. If you require no cleanup you can return
// NopDisposable.instance
return AnonymousDisposable {
print("Disposed")
}
}
source.subscribe {
print($0)
}
Ответы
Ответ 1
Чтобы создать Observable
в Swift 3,4,5, вы должны заменить старый экземпляр AnonymousDisposable
на Disposables.create()
, например, так:
let source = Observable.create { observer in
observer.on(.next(1))
observer.on(.completed)
return Disposables.create()
}
Если вы хотите предпринять какие-либо действия при утилизации Обсерватории, вы можете использовать тот, который вы упомянули ранее:
return Disposables.create {
print("Disposed")
}
Я надеюсь, что это поможет вам.
Ответ 2
Обратите внимание, что этот синтаксис из Swift 2:
NopDisposable.instance
также был заменен на
Disposables.create()
Кроме того, интересно отметить, что под капотом NopDisposable
все еще существует, но подвергается этому методу create
. Здесь источник.
Ответ 3
Использование:
return Disposables.create {
print("Disposed")
}