2017-06-05 37 views
0

我正在嘗試使我在本地工作的節點應用程序的webtask函數。 Webtask提供了一個模板,其中有一個上下文(CTX)和回調(CB)作爲兩個參數:需要幫助寫Webtask的簡單回調函數

module.exports = function(ctx, cb) { 
    cb(null, { hello: ctx.data.name || 'Anonymous' }); 
}; 

我有一個看起來像這樣的半工作代碼:

const PDFParser = require('[email protected]') 
const request = require('request') 

module.exports = function(ctx, cb) { 

    const pdfParser = new PDFParser(); 
    const pdfUrl = ctx.body.data.url; 
    const pdfPipe = request({url: pdfUrl, encoding:null}).pipe(pdfParser); 
    const data = []; //define empty array for response data 

    pdfPipe.on("pdfParser_dataError", err => console.error(err)); 
    pdfPipe.on("pdfParser_dataReady", pdf => { 
    data.push(pdfParser.getAllFieldsTypes()); //push data into array 
    console.log("data", data); //log the result 
    }); 

    cb(null, data); 
}; 

我需要發送更新的「數據」到回調函數,但不知道如何。我目前正在取回空數組(初始const data = []),但我的console.log("data", data)返回所需的結果。

回答

1

爲了解決您的代碼,你需要做的是調用上(發射器)被調用時回調:

const request = require('request') 

module.exports = function(ctx, cb) { 

    const pdfParser = new PDFParser(); 
    const pdfUrl = ctx.body.data.url; 
    const pdfPipe = request({url: pdfUrl, encoding:null}).pipe(pdfParser); 
    const data = []; //define empty array for response data 

    pdfPipe.on("pdfParser_dataError", err => console.error(err)); 
    pdfPipe.on("pdfParser_dataReady", pdf => { 
    data.push(pdfParser.getAllFieldsTypes()); //push data into array 
    console.log("data", data); //log the result 
    cb(null, data); 
    }); 


};