дождитесь завершения стороннего асин c метода - PullRequest
0 голосов
/ 07 января 2020

Я хочу запустить метод после выполнения стороннего метода (который выполняется в асинхронном режиме c):

public static void main(String[] args) {
    CompletableFuture<Void> task1 = request1();
    task1.thenRun(() -> System.out.println("should print after task1 is done!"));
}


public static CompletableFuture<Void> request1() {
   // call 3rd party method which is executed async
   lib.printData();
   return null;
}

Однако он не работает, поскольку 3-й Метод party lib.printData() не возвращает CompletableFuture. Есть ли способ подождать, пока выполняется сторонний метод? На самом деле я делаю так, но это не совсем правильно:

public static void main(String[] args) {
    request1();
    // hoping that request will execute within 1 sec
    Thread.sleep(1000);
    System.out.println("should print after request1 is done!");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...