如何让NodeJ等待在其他javascript文件中编写的函数完成
我试图在nodejs中使用javascript函数的结果,但由于nodejs是异步的,所以它不会等待函数完成。关于如何让节点等待此函数完成的任何帮助都将非常有用 正在调用的代码:如何让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
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)
});