假設我有 2 個回傳 Future 型別的函式。
ListenableFuture<User> createUser();
CompletableFuture<BillingAccount> createBillingAccount(User user);
我需要在運行createUser()之前運行,createBillingAccount因為它取決于創建的用戶。
但是,我想回傳用戶,而不是 billingAccount。
通常,我會使用,Futures.transformAsync(createUser(), user -> createBillingAccount(user))但這會回傳一個 BillingAccount。我想回傳一個用戶。
我還能在這里做什么而不阻塞?
uj5u.com熱心網友回復:
您可以簡單地執行未來,然后執行thenApplyAsync并回傳用戶,這樣您就可以回傳用戶的未來,并放棄計費,如下所示:
Futures.transformAsync(createUser(), user -> createBillingAccount(user).thenApplyAsync(b -> user))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/344624.html
