The Promise object

A common way to create a Promise is by constructing it with new Promise(...).

A Promise object must be initialized with a function that takes two parameters, which are often labeled resolve and reject (although you could call them success and failure, done and failed, etc).

Arrow functionAlternate parameter name
new Promise(function(resolve, reject) { ... })

This function is called immediately when the Promise is constructed. The arguments passed to resolve and reject are each functions which accept a single parameter.

Arrow functionAlternate parameter name
new Promise((
    
resolve: (value: any) => any,
    
reject: (error: any) => any,
) => { ... })

If resolve is called first, then the Promise object uses the value argument as the final result of the asynchronous task it represents. If reject is called first, then the Promise object enters an "error state" where it will produce the error instead.

then and catch

Once the Promise is created, you can use its then and catch methods to register callback functions that should be executed with the result of resolve and reject respectively. Try modifying the simple example below:

Loading TypeScript...

The Promise will only call one callback function exactly once - the function registered with then, or the function registered with catch. Each of these function calls returns a new Promise which represents the result of performing some further (possibly asynchronous) work.

If either function returns a value, that value will be passed to subsequent callback functions registered with then or catch.

Loading TypeScript...

Was this page helpful?