Work on #403, added README
This commit is contained in:
parent
09ba5ca656
commit
40ac552542
45
promise/README.md
Normal file
45
promise/README.md
Normal file
@ -0,0 +1,45 @@
|
||||
---
|
||||
layout: pattern
|
||||
title: Promise
|
||||
folder: promise
|
||||
permalink: /patterns/promise/
|
||||
categories: Structural
|
||||
tags:
|
||||
- Java
|
||||
- Concurrency
|
||||
- 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.
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
|
||||
* [java.util.concurrent.CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html)
|
||||
* [Guava ListenableFuture](https://github.com/google/guava/wiki/ListenableFutureExplained)
|
||||
|
||||
## Related Patterns
|
||||
* Async Method Invocation
|
||||
* Callback
|
||||
|
||||
## Credits
|
||||
|
||||
* [You are missing the point to Promises](https://gist.github.com/domenic/3889970)
|
||||
* [Functional style callbacks using CompleteableFuture](https://www.infoq.com/articles/Functional-Style-Callbacks-Using-CompletableFuture)
|
Loading…
x
Reference in New Issue
Block a user