"I Promise a Result!"
"Producing code" is code that can take some time
"Consuming code" is code that must wait for the result
A Promise is a JavaScript object that links producing code and consuming code
Promise Syntax
// "Producing Code" (May take some time)
let myPromise = new Promise( function( resolve, reject ) {
resolve() // when successful
reject() // when error
} )
// "Consuming Code" (Must wait for a fulfilled Promise)
myPromise.then(
function( success ) { /* code if successful */ },
function( error ) { /* code if some error */ }
)
Promise Object Properties
A JavaScript Promise object can be:
- Pending
- Fulfilled
- Rejected
The Promise object supports two properties: state and result.
While a Promise object is "pending" (working), the result is undefined.
When a Promise object is "fulfilled", the result is a value.
When a Promise object is "rejected", the result is an error object.
Example promise
/*
https://www.w3schools.com/js/js_promise.asp
*/
/*
"Producing Code" (May take some time)
*/
let myPromise = new Promise( function ( resolve, reject ) {
let x = 0
if ( x == 0 ) {
/* when successful */
resolve( 'OK' )
} else {
/* when error */
reject( 'Error' )
}
} )
/* --- */
/*
"Consuming Code" (Must wait for a fulfilled Promise)
*/
myPromise.then(
function ( success ) {
/* code if successful */
console.log( success )
},
function ( error ) {
/* code if some error */
console.error( error )
}
)
Example promise return
/*
https://www.w3schools.com/js/js_promise.asp
*/
/*
"Producing Code" (May take some time)
*/
function myPromise() {
return new Promise( function ( resolve, reject ) {
let x = 0
if ( x == 0 ) {
/* when successful */
resolve( 'OK' )
} else {
/* when error */
reject( 'Error' )
}
} )
}
/* --- */
/*
"Consuming Code" (Must wait for a fulfilled Promise)
*/
myPromise().then(
function ( success ) {
/* code if successful */
console.log( success )
},
function ( error ) {
/* code if some error */
console.error( error )
}
)
Example promise return resolve
/*
https://www.w3schools.com/js/js_promise.asp
*/
/*
"Producing Code" (May take some time)
*/
function myPromise() {
let result
let x = 0
if ( x == 0 ) {
/* when successful */
result = 'OK'
} else {
/* when error */
result = 'Error'
}
/* --- */
return Promise.resolve( result )
}
/* --- */
/*
"Consuming Code" (Must wait for a fulfilled Promise)
*/
myPromise().then(
function ( success ) {
/* code if successful */
console.log( success )
},
function ( error ) {
/* code if some error */
console.error( error )
}
)
Waiting for a Timeout
Waiting for a file
Promise (developer.mozilla.org)
The Promise object represents the eventual completion (or failure) of an asynchronous operation and its resulting value...
Top comments (0)