节点光纤/未来callback与多个参数

期货如何处理有多个参数的callback? 这对于我可以用于未来的每一次使用都是至关重要的。 github的例子显示它只处理一个参数。

Github自述文件的例子是

var fileNames = readdir('.').wait(); 

但是怎么样的一个MySQL调用

 client.query("select * from employees", function(err, results, fields) { // callback function returns employees array callback(results); }); 

如何使用期货wait()方法得到这三个( errresultsfields )?

编辑

实验告诉我,callback的第一个参数,在这种情况下, err总是作为error handling,如果值是truthy,则抛出。 第二个参数被分配。 任何进一步的论据都被我忽略了。

为client.query创build一个包装,返回两个结果的数据参数。

  client.prototype.query2 = function ( sql, callback ) { this.query(sql, function(err, results, fields) { var data={result:result, fields:fields}; callback(err,data); } }; 

我最近创build了比“期货”更简单的抽象,也是基于Fibers。 我还没有用真实世界的数据库例子testing我的代码。 请尝试它,并帮助我testing它,如果你可以: https : //github.com/luciotato/waitfor

Interesting Posts