如下代码 future.get() 报 null,原因是上方代码没加 return
//查询部门所有子节点
List<String> allChildNodes = nodeClosureTableService.findAllChildNodeIdByAncestorId(userPoolId, provisioningScope.getOrgId());
//部门所有子节点按 5000 条分割
List<List<String>> splitList = ListUtils.partition(allChildNodes, 5000);
List<Future<List<NodeMembers>>> taskResultList = new ArrayList<>();
for (List<String> splitChildNodes : splitList) {
//异步查询数据执行
Future<List<NodeMembers>> taskResult = threadPoolTaskExecutor.submit(() -> {
return nodeMembersService.queryByNodeIds(userPoolId, orgId, splitChildNodes);
});
taskResultList.add(taskResult);
}
for (Future<List<NodeMembers>> future : taskResultList) {
try {
nodeMembers.addAll(future.get());
} catch (Exception e) {
log.error("future 异常信息: ", e);
}
}