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
- Host: GitHub
- URL: https://github.com/bsorrentino/java-async-generator
- Owner: bsorrentino
- License: mit
- Created: 2024-04-01T18:40:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-01T20:08:15.000Z (6 months ago)
- Last Synced: 2025-04-01T21:22:34.787Z (6 months ago)
- Language: Java
- Homepage: https://bsorrentino.github.io/java-async-generator/
- Size: 83 KB
- Stars: 4
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
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
```javaAsyncGenerator 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