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
Disposableis a stream or a link between an Observable and an Observer. You can declare globally like belowThen