how to wait for a function to finish in javascript

JavaScript
function firstFunction(_callback){
    // do some asynchronous work
    // and when the asynchronous stuff is complete
    _callback();    
}

function secondFunction(){
    // call first function and pass in a callback function which
    // first function runs when it has completed
    firstFunction(function() {
        console.log('huzzah, I\'m done!');
    });    
}function doFirst() {
  return new Promise(function(resolve, reject) {
    //do a thing
      if (){
          return reject(value);
  	  }
      resolve(value);
    });
  });
}

async function doSecond() {
    var outputValue = await doFirst();
    console.log(outputValue);
}
Source

Also in JavaScript: