Scala – Future, Promise

  • date 18th February, 2021 |
  • by Prwatech |

Introduction to Scala's Future and Promise

Scala's Future and Promise are key abstractions for working with asynchronous and concurrent programming.

A Future represents a value that may become available at some point in the future, typically as a result of an asynchronous computation. Future allows developers to perform non-blocking operations and define asynchronous computations without explicitly managing threads.

On the other hand, a Promise is a writable, single-assignment container for a value that will be provided later by some producer. A Promise is associated with a Future, and the value of the Promise can be completed to fulfill the associated Future.

Together, Future and Promise enable developers to write expressive, asynchronous code that handles concurrent tasks efficiently. Future represents the result of a computation that may occur asynchronously, while Promise provides a mechanism for producing the result of a Future.

By leveraging Future and Promise, developers can implement non-blocking, responsive applications that efficiently utilize system resources and manage asynchronous computations with ease. Understanding these abstractions is essential for writing scalable and responsive concurrent applications in Scala.


A future is an object holding a value that may become available at any point.


A promise p completes the future returned by p. This future is specific to the promise p.


Introduction to Scala's Future and Promise

Quick Support

image image