嗨我正在将一个bot框架的会话变量传递给这个函数,它工作正常但是当我尝试在conn.query(内部函数)中访问它时,它是无法访问的。这是代码片段
function hopitalSearch(city, treatment, context, callback) {
conn = mysql.createConnection(db_config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
});
var hospitalList = [];
var basic_query = 'SELECT hospital_name FROM hospital_list WHERE hospital_location="' + city + '" AND treatment_name="' + treatment + '" LIMIT 10';
conn.query(basic_query, function (err, results, fields) {
if (err) throw err;
for (var i = 0; i < results.length; i++) {
hospitalList.push(JSON.stringify(results[i].hospital_name));
}
console.log(hospitalList);
console.log("showing context")
console.log(context); //not accessible
}); }
发布于 2018-10-10 10:34:26
尝试使用async / await。
注意:不要忘记使用TRY / CATCH。
async function hopitalSearch(city, treatment, context, callback) {
conn = mysql.createConnection(db_config);
await conn.connect();
var hospitalList = [];
var basic_query = 'SELECT hospital_name FROM hospital_list WHERE hospital_location="' + city + '" AND treatment_name="' + treatment + '" LIMIT 10';
var results = await conn.query(basic_query);
for (var i = 0; i < results.length; i++) {
hospitalList.push(JSON.stringify(results[i].hospital_name));
}
console.log(hospitalList);
console.log("showing context")
console.log(context);
}
https://stackoverflow.com/questions/-100002869
复制相似问题