0

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

第一个函数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();

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

4

1 回答 1

1

如果您只是简单地用 替换该.then(md).then(marked),那么调用的结果fs.readFile(履行承诺的值)将被传递给marked.

于 2013-07-24T04:47:06.577 回答