Promise & async/await
Its an object which may returns a single value in future. The returned value is resolved one or reason for not resolved.
It may have only 3 status
1. fulfilled
2. pending
3. rejected
console.log('ticket 1');
console.log('ticket 2');
const preMovie = async () => {
console.log('3.5');
function gettickets() {
return new Promise(function (resolve, reject) {
setTimeout(() => { resolve('ticket') }, 3000)
});
}
console.log('3.6');
function getpopcorn() {
return new Promise(function (resolve, reject) {
setTimeout(() => { resolve('popcorn') }, 3000);
})
}
let ticket = await gettickets();
console.log('3.6');
let pop = await getpopcorn();
console.log('3.7');
let [t1,p1]=await Promise.all([ticket,pop]);
console.log('3.8');
console.log(`${t1}... ${p1}`);
return ticket;
}
preMovie().then( (res)=>{console.log(`res:${res}`)});
console.log('ticket 4');
console.log('ticket 5');
setTimeout(() => { console.log('ticket 6') }, 10000);
console.log('ticket 7');
Output:
ticket 1
ticker 2
3.5
3.6
ticket 4
ticket 5
ticket 7
3.6
3.7
3.8
ticket...popcorn
res:ticket
ticket 6
2) let, var, const
3) class
4) spread operator & rest parameter