데이터베이스를 쿼리하고 쿼리가 끝난 후 다른 메서드를 수행 할 메서드를 작성하고 있습니다. 데이터베이스에 대한 호출이 비동기이기 때문에,하지만, 나는 데이터베이스 호출이 완료 될 때까지과 같이 실행의 주요 흐름을 중지하는 방법을 알아낼 수 없습니다Java에서의 비동기 실행 흐름
public void getUserFromEmail(String email) {
Firebase usersRef = rootRef.child("users");
//Asynchronous database call, want to stop everything else
usersRef.orderByKey().equalTo(email).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println(firebaseError.getMessage());
}
});
//Perform some more operations after database call is finished
}
내가 작업에 사용 해요 Nodejs에서 비동기 콜백을 사용하지만 Java에서 실행 흐름을 제어하는 동등한 방법이 있는지 알아낼 수 없습니다. 내가하고 싶은 것을 성취 할 수있는 쉬운 방법이 있습니까?
내가 콜백이 완료되면 원래 meyhod에서 값을 반환하기를 원한다면 무엇? – Matt
메소드가'void '입니다. 너는 돌아갈 수 없다. 사실, 당신도 그래야합니다. 비동기가'return' 문으로 잘 작동하지 않습니다 –
콜백 내의'dataSnapshot'에서 얻은 데이터로 직접 UI를 업데이트 할 수 있습니다 –