I want to resolve the updateGuider
function from speak function like this:
tutor();
async function tutor(){
console.log('tutor function initiated..');
// wait until updateGuider function resolves
await updateGuider('default');
// The expected result is to reach this line after updateGuider resolves, but we can't so far!
console.log('Procccess Ends');
}
// Not working unless we use var instead of let?!
let updateGuiderResolve;
function updateGuider(state){
return new Promise((resolve) => {
updateGuiderResolve = resolve;
switch(state) {
case 'default':
speak();
break;
}
});
}
async function speak(){
console.log('entered speak')
setTimeout(function(){
//after 5 seconds we resolve the updateGuider from speak function
updateGuiderResolve();
},5000)
}
As you can see the code doesn't work (Expected result is to see console.log('Procccess Ends')
after 5 seconds);
I noticed that if I change the let updateGuiderResolve
to var updateGuiderResolve
everything works fine! Why?