Created
January 11, 2017 05:37
-
-
Save doron2402/23f66a2658ddd0b1fdee796eec6e3cb7 to your computer and use it in GitHub Desktop.
Execute promise by Mozilla
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
var promiseCount = 0; | |
function testPromise() { | |
var thisPromiseCount = ++promiseCount; | |
var log = document.getElementById('log'); | |
log.insertAdjacentHTML('beforeend', thisPromiseCount + | |
') Started (<small>Sync code started</small>)<br/>'); | |
// We make a new promise: we promise a numeric count of this promise, starting from 1 (after waiting 3s) | |
var p1 = new Promise( | |
// The resolver function is called with the ability to resolve or | |
// reject the promise | |
function(resolve, reject) { | |
log.insertAdjacentHTML('beforeend', thisPromiseCount + | |
') Promise started (<small>Async code started</small>)<br/>'); | |
// This is only an example to create asynchronism | |
window.setTimeout( | |
function() { | |
// We fulfill the promise ! | |
resolve(thisPromiseCount); | |
}, Math.random() * 2000 + 1000); | |
} | |
); | |
// We define what to do when the promise is resolved/fulfilled with the then() call, | |
// and the catch() method defines what to do if the promise is rejected. | |
p1.then( | |
// Log the fulfillment value | |
function(val) { | |
log.insertAdjacentHTML('beforeend', val + | |
') Promise fulfilled (<small>Async code terminated</small>)<br/>'); | |
}) | |
.catch( | |
// Log the rejection reason | |
function(reason) { | |
console.log('Handle rejected promise ('+reason+') here.'); | |
}); | |
log.insertAdjacentHTML('beforeend', thisPromiseCount + | |
') Promise made (<small>Sync code terminated</small>)<br/>'); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment