【问题标题】:Node fibers/future callbacks with more than one argument具有多个参数的节点纤程/未来回调
【发布时间】:2012-11-29 12:51:06
【问题描述】:

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

Github Readme 的例子是

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

但是 mysql 调用之类的东西呢

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

如何使用 futures wait() 方法获得这三个(errresultsfields)?

编辑

实验告诉我,回调的第一个参数,在本例中为err,总是被视为错误,如果值是真值则抛出。第二个参数被赋值。尽我所能忽略任何进一步的论点。

【问题讨论】:

    标签: javascript node.js future node-fibers


    【解决方案1】:

    为 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);
                  }
     };
    

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

    【讨论】:

    • 非常聪明。我暂时没有时间研究这段代码,但这看起来很重要。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多