Как изменить глобальную переменную из реализации анонимного класса в котлин

fun loadTweets(uid: Int) : Observable<ArrayList<Tweet>> { var tweets: ArrayList<Tweet> = ArrayList<Tweet>() val builder: Retrofit.Builder = Retrofit.Builder() .baseUrl(NetworkContract.SERVER_URL) .addConverterFactory(GsonConverterFactory.create()) val retrofit: Retrofit = builder.build() val userService: UserService = retrofit.create(UserService::class.java) val call: Call<List<Tweet>> = userService.loadTweets(uid) call.enqueue(object: Callback<List<Tweet>>{ override fun onResponse(call: Call<List<Tweet>>?, response: Response<List<Tweet>>?) { if(response!!.isSuccessful){ val tweetsTemp: ArrayList<Tweet> = ArrayList<Tweet>() tweetsTemp.add(Tweet("Test!", "Tom")) mTweets = tweetsTemp } } override fun onFailure(call: Call<List<Tweet>>?, t: Throwable?) { } }) return Observable.just(this.mTweets) } 

Привет, ребята, я хочу создать твист Twitter, но я не могу вернуть измененную переменную mTweets. Я получаю ответ от своего сервера и в методе onResponse mTweets изменен, но моя функция возвращает пустую строку. (Btw. TweetsTemp предназначен только для тестирования. Я изменю это позже).

Вы не можете вернуть mTweets потому что сетевой вызов выполняется асинхронно.

Подробнее об синхронных и асинхронных запросах читайте здесь: https://futurestud.io/tutorials/retrofit-synchronous-and-asynchronous-requests