title: Using results from two different asynchronous functions
body: <p>I'm trying to learn Asynchronous programming with NodeJS and I'm having trouble understanding how to create usable functions. </p>
  
  <p>I'm trying to compare the results of a HTTP get request and a file read all inside an "express" callback. What is the best way to split out two different async operations into their own functions so that they can be used again together in a different callback?</p>
  
  <p>I Have it working when I write everything inside the express callback</p>
  
  <pre><code>app.get('/', (req, res) =&gt; {
      axios.get('http://127.0.0.1:8080')                                                                                                                                                                                                                           
          .then(function(response) {                                                                                                                                                                                                                                    
              var http_data = response.data 
              // Do more stuff with data                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
              fs.readFile('fwversion_current', 'utf8', function(err, contents) {
              var file_data = contents.trim() 
              // Do more stuff with data
              if (http_data == file_data) {
                  res.send("Match")
              }
              else {
                  res.send("No Match")
              }
          });
  });
  </code></pre>
  
  <p>But I'm hoping for something more like this so I can use these same operations in other places. I'm not sure the right node way to get there.</p>
  
  <pre><code>function getHttpData() {
      axios.get('http://127.0.0.1:8080')                                                                                                                                                                                                                            
          .then(function(response) {                                                                                                                                                                                                                                    
              var http_data = response.data 
              // Do more stuff with data    
              return http_data
           });
  }
  
  function getFileData() {
      fs.readFile('fwversion_current', 'utf8', function(err, contents) {                                                                                                                                                                                            
          var file_data = contents.trim() 
          // Do more stuff with data
          return file_data
      });
  }
  
  app.get('/', (req, res) =&gt; {
      let http_data = await getHttpData()
      let file_data = await getFileData()
  
      if (http_data == file_data) {                                                                                                                                                                                                                                 
          res.send("Match")                                                                                                                                                                                                                                     
      }                                                                                                                                                                                                                                                         
      else {                                                                                                                                                                                                                                                        
          res.send("No Match")                                                                                                                                                                                                                                  
      }                                                                                                                                         
  });
  </code></pre>