期货如何处理具有多个参数的回调?这对于我可以用于期货的几乎所有用途都至关重要。 github示例显示它只处理一个参数。
Github Readme的示例是
var fileNames = readdir('.').wait();
但是像mysql调用的东西呢
client.query("select * from employees", function(err, results, fields) {
// callback function returns employees array
callback(results);
});
我如何使用期货err
方法获得这三个(results
,fields
和wait()
)?
修改
实验告诉我,回调的第一个参数(在本例中为err
)始终被视为错误,如果值为真,则抛出。第二个参数已分配。任何进一步的论点都会被忽略。
答案 0 :(得分:3)
为client.query创建一个包装器,返回一个带有两个结果的 data 参数。
client.prototype.query2 = function ( sql, callback ) {
this.query(sql,
function(err, results, fields) {
var data={result:result, fields:fields};
callback(err,data);
}
};
我最近创建了比'期货'更简单的抽象,也基于纤维。 我还没有用真实的数据库示例测试我的代码。如果可以的话,请尝试并帮我测试一下:https://github.com/luciotato/waitfor