сеть, вторая функция возвращает результат и присваевает его в глобальную переменную. А третья функция изначально вызвала первую функцию и должна ждать, когда глобальная переменная получит данные, затем выполнится return globalVariable. Использовать коллбэк нельзя. Сейчас реализовано таким образом:
                  
                  
                  override fun getDataById(id: String): Data {
                  
                  
                                      getDataByIdFromJs(id)
                  
                  
                                      while (data == null) {
                  
                  
                                          Thread.sleep(200)
                  
                  
                                      }
                  
                  
                                      val m = data?.copy()
                  
                  
                                     data = null
                  
                  
                                      return m!!
                  
                  
                                  }
                  
                  
                  Какие есть варианты, чтобы избавится от костыля в виде цикла и thread.sleep? Как заблокировать выполнение метода, пока переменная равна null?
                  
                  
                
почему использовать callbak нельзя?
Не надо использовать глобальную переменную вообще.
Взять корутины и async await
в getDataByIdFromJson нельзя какой-нибудь wait/notify заюзать или CountDownLatch?
Обсуждают сегодня