An open API service indexing awesome lists of open source software.

https://github.com/bsorrentino/java-async-generator

a Java version of Javascript async generator
https://github.com/bsorrentino/java-async-generator

Last synced: 6 months ago
JSON representation

a Java version of Javascript async generator

Awesome Lists containing this project

README

          


# java-async-generator

A Java version of Javascript async generator.
Idea is to create an iterator-like interface that emit elements as [CompletableFuture] ( the Java counterpart of Javascript Promise ) enabling asynchronous iteration over data

# Releases

**Note: ‼️**
> From release 3.0.0 the miminum supported Java version is the `Java 17` and
> will not be longer available the artifact `async-generator-jdk8`

# Samples

## Create an Async Generator to make multiple API calls

```java

AsyncGenerator makeMultipleApiCalls(List requestsData) {
return AsyncGenerator.map(requestsData, requestData -> {

CompletableFuture res = asyncApiCall( requestData );

return res;
});

}

List resquestsData = ....

// can iterate using lambda function (Consumer)
makeMultipleApiCalls( resquestsData )
.forEachAsync( response -> logger.info( "Api response: " + response ) )
.join();

// can iterate using classic for( : )
AsyncGenerator generator = makeMultipleApiCalls( resquestsData );

for( Response response : generator ) {
logger.info( "Api response: " + response )
}

```

Articles:

* [How to stream data over HTTP using Java Servlet and Fetch API](https://bsorrentino.github.io/bsorrentino/web/2024/07/21/how-to-stream-data-in-java.html)

[CompletableFuture]: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/CompletableFuture.html