Quantcast
Channel: Active questions tagged javascript - Stack Overflow
Viewing all articles
Browse latest Browse all 139953

resolving a promise inside a function from another function

$
0
0

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?


Viewing all articles
Browse latest Browse all 139953

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>