2

期货如何处理具有多个参数的回调?这对于我可以用于期货的几乎所有用途都至关重要。github 示例显示它只处理一个参数。

Github 自述文件中的示例是

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

但是 mysql 调用之类的东西呢

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

我如何使用期货方法获得这三个( err、、results和) ?fieldswait()

编辑

实验告诉我,回调的第一个参数,在这种情况下err,总是被视为错误,如果值是真实的,就会被抛出。第二个参数被赋值。尽我所能忽略任何进一步的论点。

4

1 回答 1

3

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

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

我最近创建了比“futures”更简单的抽象,也是基于 Fibers。我还没有使用真实世界的数据库示例测试我的代码。请尝试一下,如果可以的话帮我测试一下:https ://github.com/luciotato/waitfor

于 2013-08-12T07:03:39.067 回答