如何链接我的两个异步函数所需的参数。
第一个函数 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();
但是它不起作用,因为当使用回调函数作为第三个参数调用时,标记的函数需要第二个参数。如何设置第二个参数,以正确调用标记的函数?
答案 0 :(得分:1)
如果您只是将.then(md)
行替换为.then(marked)
,则调用fs.readFile
(履行承诺的值)的结果将传递给marked