* Adding support for maven assembly plugin to generate executable jar with all dependencies in built * Merge branch 'master' into issue-989 # Conflicts: # abstract-document/pom.xml # pom.xml * Adding maven assemly plugin for projects with name A * Update in format as per checkstyle, i.e. Spcae in place of tab with size of 2 * batch set - 2 having all project with B and C * issue-989 d-e-f * fixing eip pom and adding g-h-i-l-m-n Skipping naked object as it seems it doesn't have main method, will consider this at end * Adding for O and P projects Skipping Object-Mother as we don't have main method for same.
layout, title, folder, permalink, categories, tags
layout | title | folder | permalink | categories | tags | |
---|---|---|---|---|---|---|
pattern | Promise | promise | /patterns/promise/ | Concurrency |
|
Also known as
CompletableFuture
Intent
A Promise represents a proxy for a value not necessarily known when the promise is created. It allows you to associate dependent promises to an asynchronous action's eventual success value or failure reason. Promises are a way to write async code that still appears as though it is executing in a synchronous way.
Class diagram
Applicability
Promise pattern is applicable in concurrent programming when some work needs to be done asynchronously and:
- Code maintainability and readability suffers due to callback hell.
- You need to compose promises and need better error handling for asynchronous tasks.
- You want to use functional style of programming.
Real world examples
Related Patterns
- Async Method Invocation
- Callback