我正在使用带有node-mysql2的co库。
const newActivityCount = co.wrap(function *(memberId) {
var sql = "SELECT 1";
var conn = yield pool.getConnection();
var results = yield conn.execute(sql);
yield conn.release();
return results[0][0].newActivity;
});
用作
newActivityCount()
.then(..something)
.catch(err => { throw err;});
抛出以下错误:
You may only yield a function, promise, generator, array, or object, but the following object was passed: "undefined"
这是定义池的方式:
// my-connection.js
var mysql = require('mysql/promise');
var bluebird = require('bluebird);
const pool = mysql.createPool({
connectionLimit: CONFIG.mysql.connectionLimit,
host : CONFIG.mysql.host,
user : CONFIG.mysql.user,
password : CONFIG.mysql.password,
database : CONFIG.mysql.database,
Promise : bluebird
});
module.exports = pool;
但是,如果我从
更改上面的第5行 yield conn.release() to conn.release()
即如果我删除了' yield'关键字,工作正常。
根据author:
他建议使用yield conn.end()
,
我很担心,如果我不是收益'在那里,我可能会弄乱一些东西。
我在这里缺少什么线索?