node.js koa登录接口mysql查询 promise返回数据

图片描述

node.js mysql登录接口,代码已经跑通了。但是我总觉得我的resolve用法很尴尬。感觉promise对象不是这样用。。。求大神请教!!!

阅读 3.3k
2 个回答

不尴尬啊,在Koa2要顺序执行就是需要把回调方式的函数用Promise封装的.
_
或许你在Promise中把结果reslove出来再处理会好些。
我是这样处理的:

function evalSimpleSql(sqlStr) {
  return new Promise((resolve, reject) => {
    pool.query(sqlStr, function (error, results) {
      if (error) reject(error);
      else {
        resolve(results);
      }
    });
  });
}

简单的sql语句就传入evalSimpleSql执行..
一些回调形式改写成Promise形式的包,本质也是这样

如果是node版本>8.0,那么可以这样:

1、将query转成promise

var query = util.promisify(pool.query);

2、愉快地await

var result = await query('你的sql语句');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题