util.promisify函数不返回

时间:2019-05-06 02:35:18

标签: mysql node.js express promise

我有一个不会返回的函数。 SQL查询不错。 功能不错,当不在异步状态时效果很好

const util        = require('util')
const sq          = util.promisify(msql)

...

sq(db,quer1,1).then(data => {
    rspn = rspn + data
    console.log("---- can *NOT* get here!")

    sq(db,query2,2).then(data2 => {

      console.log ("----- can *NOT* get here here!")
      rspn =  rspn + data2

      res.writeHead(200, {"Content-Type": "text/plain"})
      res.write(rspn)
      res.end()

  }).catch(err => console.error(`[Error]: ${err}`))
}).catch(err => console.error(`[Error]: ${err}`))

然后,最后将不返回的函数调用。当我使用此代码(不在函数中使用时,它工作正常。on('end')return可以正常工作

function msql(db,sql,res,num){

    let rspn = ''

    query = db.query(sql)
    query
    .on('error', function(err) {
        console.log(err)
    }).on('result', function(row) {
   ...

    })
    .on('end', function() {
      rspn = rspn + `!-- end container -->`

        console.log("----can get here ------ ")
        return rspn //  not returning here 

    })
    console.log("----can get here ------ ")
    return rspn //  not returning here either

}

在这方面的任何帮助将不胜感激,谢谢您的考虑。

0 个答案:

没有答案