Skip to content

Commit 82a92dd

Browse files
committed
Change ConnectionDataLoader to use Async loading.
1 parent 1086e38 commit 82a92dd

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/main/java/graphql/annotations/dataFetchers/connection/ConnectionDataFetcher.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
import java.lang.reflect.Constructor;
2222
import java.util.Arrays;
2323
import java.util.Optional;
24+
import java.util.concurrent.CompletableFuture;
2425

2526
import static graphql.annotations.processor.util.ReflectionKit.constructNewInstance;
27+
import static java.util.concurrent.CompletableFuture.supplyAsync;
2628

27-
public class ConnectionDataFetcher<T> implements DataFetcher<graphql.relay.Connection<T>> {
29+
public class ConnectionDataFetcher<T> implements DataFetcher<CompletableFuture<graphql.relay.Connection<T>>> {
2830
private final DataFetcher<?> actualDataFetcher;
2931
private final Constructor<ConnectionFetcher<T>> constructor;
3032

@@ -44,8 +46,8 @@ public ConnectionDataFetcher(Class<? extends ConnectionFetcher<T>> connection, D
4446
}
4547

4648
@Override
47-
public graphql.relay.Connection<T> get(DataFetchingEnvironment environment) {
49+
public CompletableFuture<graphql.relay.Connection<T>> get(DataFetchingEnvironment environment) {
4850
ConnectionFetcher<T> conn = constructNewInstance(constructor, actualDataFetcher);
49-
return conn.get(environment);
51+
return supplyAsync(() -> conn.get(environment));
5052
}
5153
}

0 commit comments

Comments
 (0)