Javascript JS通过mysql查询从函数返回值

Javascript JS通过mysql查询从函数返回值,javascript,node.js,Javascript,Node.js,有一个函数需要从中提取值 function func () { let a sql = `SELECT * FROM ...` db.query(sql, function (err, results) { if (err) throw err a = ... }) return a } func() let per = func() 但一直没有定义。这可以通过async/await解决。您需要一个回调函数(或承诺) 查询调用中的函数是回调函数,这意味着

有一个函数需要从中提取值

function func () {
  let a

  sql = `SELECT * FROM ...`
  db.query(sql, function (err, results) {
    if (err) throw err
    a = ...
  })
  return a
}
func()

let per = func()

但一直没有定义。这可以通过async/await解决。

您需要一个回调函数(或承诺)


查询调用中的函数是回调函数,这意味着它是在查询完成后执行的。不能对异步方法使用
return
。相反,您应该在一个函数中包含您希望随后执行的代码,并从回调内部调用该函数(将结果作为参数)。
function func(cb) {
  sql = `SELECT * FROM ...`
  db.query(sql, function (err, results) {
    if (err) throw err
    cb(results)
  })
}

func((a) => {
  console.log(a); // results of the query
})