如何让NodeJ等待在其他javascript文件中编写的函数完成

如何让NodeJ等待在其他javascript文件中编写的函数完成,javascript,node.js,Javascript,Node.js,我试图在nodejs中使用javascript函数的结果,但由于nodejs是异步的,所以它不会等待函数完成。关于如何让节点等待此函数完成的任何帮助都将非常有用 正在调用的代码: const patientId = function(patientUUID) { var mysql = require('mysql'); var connectionF = mysql.createConnection({ host : 'localhost', u

我试图在nodejs中使用javascript函数的结果,但由于nodejs是异步的,所以它不会等待函数完成。关于如何让节点等待此函数完成的任何帮助都将非常有用

正在调用的代码:

const patientId =  function(patientUUID) {
 var mysql      = require('mysql');
 var connectionF = mysql.createConnection({
      host     : 'localhost',
      user     : 'localuser',
      password : 'localpass',
      database: 'localdb'
        });
   connectionF.connect();
   connectionF.query(patientIDFinderQuery, [patientUUID], function(error,result,fields) {
      return result[0].patient_id; // I am trying to capture this result precisely
    } );
} 
呼叫代码:

app.post('/pushdata',  function (req, res,next)  {

connection.query(creatorQuery, [login], function(error,result,fields) {
let visit = req.body.visits[0]
let patientUUID = visit.patient
 let patientId =   dbHelper.patientId(patientUUID); // This is where the code is being called
console.log(patientId); // Returns Undefined
}
});
 res.json({'status':'ok'})
  })

将PatientId方法作为promise函数。

考虑使用,或重构代码以使用Hi@CameronLittle,您是否可以对其进行一些修改,以便我可以从中吸取教训抛出错误:ypeError:无法读取dbHelper.PatientidPatientidUID.then PatientId=>{console.logpatientId};}在调用patiendId方法之前先进行日志记录。
const patientId =  function(patientUUID) {
  return new Promise (resolve, reject => {
    ... more code
   connectionF.query(patientIDFinderQuery, [patientUUID], function(error,result,fields) {
      resolve(result[0].patient_id);
    } );
  });
}
...more code
dbHelper.patientId(patientUUID). then (patientId => {
  console.log(patientId)
});