having a function query data from database and returning a Flowable
@Dao
interface DataDao {
@Query("SELECT * FROM DataTable ORDER BY `order`")
fun listenToAll():Flowable<List<DataRoomEntity>>
}
and when subscribe to it, the disposable is not resolved (see the screenshot).
var dataDao: DataDao
fun listenToDataDb(): Flowable<Data> = dataDao.listenToAll()
.map { convertEntitiesToData(it) }
fun getData(){
//var disposable: Disposable? = null
var disposable = listenToDataDb()
.subscribe({ data ->
// do something with data
disposable?.dispose() //<== disposable is unresolved
}, { throwable ->
disposable?.dispose(). //<== disposable is unresolved
})
}
}
but if do define the var disposable: Disposable = null
first it is fine
fun test(){
var disposable: Disposable? = null
disposable = listenToDataDb()
.subscribe({ data ->
// do something with data
disposable?.dispose() //<=== it is fine
}, { throwable ->
disposable?.dispose()
})
}
why it gets unresolved
error if not define it first?
A
Disposable
is a stream or a link between an Observable and an Observer. You can declare globally like belowThen