/**
 * @desc: 网路异步请求,查数据库 示例
 * @author: 毛会懂
 **/
public class Test5Main {
    public static void main(String[] args) {
        // 假设参数为userId,根据userId查询有相同爱好的人
        String userId = "00001";


        // 根据userId 查userId的兴趣爱好
        CompletableFuture<List<String>> future = getHobbyByUserId(userId)
                .thenCompose(hobby -> getUsersByHobby(hobby));
        try {
            List<String> result = future.get();
            System.out.println("返回的结果是:" + result);
        }catch (Exception ex){

        }
    }


    // 异步查询userId的兴趣爱好
    private static CompletableFuture<String> getHobbyByUserId(String userId) {
        return CompletableFuture.supplyAsync(() ->{
            // 根据userId查询数据库
            return "爱好1";
        });
    }

    private static CompletableFuture<List<String>> getUsersByHobby(String hobby){
        return CompletableFuture.supplyAsync(() -> {
            // 根据hobby查询数据库
            return Arrays.asList("姓名1","姓名2");
        });
    }