Quiero llamar a una función lambda de AWS dentro de la cual me estoy conectando a una base de datos de Firebase. El problema es que el controlador se ejecuta antes de que obtenga los datos necesarios de Firebase.
Una receta para convertir una llamada asíncrona en síncrona:
Supongamos que la llamada asíncrona se llama fooAsync() y que tiene alguna forma de verificar una condición de resultado cuando se completa la operación. Puede introducir su propio volatile boolean fooComplete para rastrear esto.
Entonces:
public void fooSyncWrapper() { volatile boolean fooComplete = false; Thread thread = new Thread() { @Override public void run() { fooAsync(); while (!fooComplete) { // busy wait on completion condition fooComplete = checkIfComplete(); } // task is completed, thread will join } }; thread.start(); thread.join(); }