【问题标题】:Chain parameters between async functions with Q in node.jsnode.js中带有Q的异步函数之间的链参数
【发布时间】:2013-07-24 12:47:06
【问题描述】:

如何链接我的两个异步函数所需的参数。

第一个函数fs.readFile返回回调函数中文件的内容作为第二个参数。

第二个函数标记需要这个内容作为第一个参数。第二个参数是可选的,可以是一个选项对象。第三个参数是回调,它应该给我转换后的内容作为第二个参数。

目前我已经尝试过这段代码:

  var readFile = q.nfbind(fs.readFile);
  var md = q.nfbind(marked);

  readFile(fileName, 'UTF8')
  .then(md)
  .then(function (html) {
    res.setHeader('Content-Type', 'text/html');
    res.setHeader('Content-Length', html.length);
    res.status(200);
    res.end(html);
  })
  .catch(function (error) {
    res.setHeader('Content-Type', 'text/plain');
    res.send(500, 'server error: ' + error);
    res.end();
  })
  .done();

但它不起作用,因为标记的函数在使用回调函数作为第三个参数调用时需要第二个参数。如何设置第二个参数,才能正确调用标记的函数?

【问题讨论】:

    标签: node.js promise q


    【解决方案1】:

    如果您只是将.then(md) 行替换为.then(marked),那么调用fs.readFile 的结果(实现承诺的值)将被传递给marked

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-17
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 2019-01-20
      相关资源
      最近更新 更多