我是javascript和nodejs的新手。我想在异步函数中转换回调函数。有人可以帮我举个例子吗?
例如:
exports.list = function(req, res){
req.getConnection(function(err,connection){
var query = connection.query('SELECT * FROM customer',function(err,rows)
{
if(err)
console.log("Error Selecting : %s ",err );
res.send(rows);
});
//console.log(query.sql);
});
};
是列出数据库中所有用户的回调。我想使用像async.paralel()
,async.series()
等异步模块的功能来做这件事....
答案 0 :(得分:0)
您可以尝试Bluebird http://bluebirdjs.com/docs/getting-started.html
像这样工作
var fs = require("fs");
Promise.promisifyAll(fs);
// Now you can use fs as if it was designed to use bluebird promises from the beginning
fs.readFileAsync("file.js", "utf8").then(...)
答案 1 :(得分:0)
您可以使用util.promisify
,它是自v8.0.0以来Node.js的原生代码。完整文档可用here,但简而言之,它看起来像这样:
const util = require("util");
const fs = require("fs");
util.promisify(fs.readFile)("foo.txt").then(data => {
// Do something with data.
});
或async/await
:
async function readFileAsPromise() {
return await util.promisify(fs.readFile)("foo.txt");
}
readFileAsPromise().then(data => {
// Do something with data.
});