Flow of execution in Promises
by Uday Hiwarale
HTML
<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
JavaScript
const promiseA = new Promise( ( resolve ) => {
console.log('ExecutorA: Begin!');
resolve( 'A' );
console.log('ExecutorA: End!');
} );
const promiseB = new Promise( ( resolve ) => {
console.log('ExecutorB: Begin!');
resolve( 'B' );
console.log('ExecutorB: End!');
} );
// Promise: classical approach
const getPromiseClassical = () => {
console.log('getPromiseClassical()');
return promiseA.then( ( resultA ) => {
console.log('promiseClassical: A');
return promiseB.then( ( resultB ) => {
console.log('promiseClassical: B');
console.log( 'Classical: Promises resolved: ', resultA, resultB );
} );
} );
};
const promiseClassical = getPromiseClassical();
// Promise: async/await
const getPromiseAsync = async () => {
console.log('getPromiseAsync()');
const resultA = await promiseA;
console.log('promiseAsync: A');
const resultB = await promiseB;
console.log('promiseAsync: B');
console.log( 'Async: Promises resolved: ', resultA, resultB );
};
const promiseAsync = getPromiseAsync();