2013-07-23 32 views
0

如何链接我需要的两个异步函数的参数。node.js中带有Q的异步函数之间的链参数

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

但它不工作,因为标记功能,需要的时候,它被称为有回调函数作为第三个参数的第二个参数。如何设置第二个参数,以正确调用标记的功能?

回答

1

如果您只需将.then(md)行替换为.then(marked),则调用fs.readFile(履行承诺的值)的结果将传递至marked