2013-07-23 61 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