Я совершенно новичок в java asyn c функция и наблюдаем все это. Можно ли в любом случае убедиться, что функция asyn c вернулась, прежде чем продолжить? В настоящее время я использую Thread.sleep(100);
, чтобы я мог получить нужные данные, но я не думаю, что это уместно.
мой код:
private void getGroupAllInfo(CallbackContext callbackContext){
Log.d("executing: ", "getGroupAllInfo1");
Observable observable = GsscFactory.executeGetZwaveAllInfo(this.sock, MationPlugin.gatewayId, MationPlugin.account, MationPlugin.password);
observable.subscribe(t -> {
System.out.print(t);
MationPlugin.allInfo.put("data",t.toString());
// callbackContext.success(t.toString());
});
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
this.getGroupAllInfo(callbackContext);
try{
Thread.sleep(100);
}catch(InterruptedException e){
e.printStackTrace();
}
callbackContext.success(this.allInfo.getString("data"));
}
Я понял, что я не могу назначить переменную внутри observable.subscribe (t -> {}), поэтому я решил поместить нужные данные в объект json. Если есть какие-то альтернативы, скажите, пожалуйста. > <</p>