NooBxGockeL c2a7b902a9 Work on #190: urm/puml updates
* added pumlid where it was missing and possible
* removed pumlid where it generated a bad image
* regenerated some incorrect puml's
* added 'left to right direction' puml prefix to some diagrams to improve the automatic layouting
2017-03-25 22:07:10 +01:00
..
2017-03-25 22:07:10 +01:00
2016-11-27 14:34:20 +02:00
2017-03-25 22:07:10 +01:00

layout, title, folder, permalink, pumlid, categories, tags
layout title folder permalink pumlid categories tags
pattern Promise promise /patterns/promise/ DOqv4i8m301xNW4FYDLJvIl2rYHYBDcZWtmVKr3jDZkxUw15IhyzM6lFHcdzVaPCVm8ONkNWEFELJbQ71ccKEWIuvuKhXJT-S6laVEWsCO9C7GHz2KmRmav0KVzUqgJCtsydROjV Concurrency
Java
Functional
Reactive
Difficulty-Intermediate

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.

alt text

Applicability

Promise pattern is applicable in concurrent programming when some work needs to be done asynchronously and:

  • code maintainablity 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