Anurag Agarwal 428efc7d53 Java 11 migrate remaining p (#1122)
* Moves partial-response to Java 11

* Moves pipeline to Java 11

* Moves poison-pill to Java 11

* Moves priority-queue to Java 11

* Moves private-class-data to Java 11

* Moves producer-consumer to Java 11

* Moves promise to Java 11

* Moves property to Java 11

* Moves prototype to Java 11

* Moves proxy to Java 11

* Corrects checkstyle errors

* Fixes build for pipeline pattern
2020-01-16 08:06:36 +02:00
..
2019-12-07 18:03:49 +02:00
2020-01-16 08:06:36 +02:00
2019-12-18 22:04:08 +02:00

layout, title, folder, permalink, categories, tags
layout title folder permalink categories tags
pattern Promise promise /patterns/promise/ Concurrency
Reactive

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

alt text

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

  • Async Method Invocation
  • Callback

Credits