我試圖從一個第三方服務使用節點請求模塊獲取一些數據,並將該數據作爲字符串從函數中返回。我的看法是,request()
返回一個可讀的流,因爲你可以做request(...).pipe(writeableStream)
它 - 我想 - 意味着我可以做爲什麼不request.on()在Node.js中工作
function getData(){
var string;
request('someurl')
.on('data', function(data){
string += data;
})
.on('end', function(){
return string;
});
}
但是這並沒有真正的工作。我想我對request()或節點流如何真正起作用有一些錯誤的認識。有人能澄清我的困惑嗎?
非常感謝您的回答!奇怪的行爲是1.因爲我沒有.toString()方法,所以我得到了一些奇怪的外觀和2.我正在調用它,正如你說的正確同步。我不確定如何在能夠返回接收到的數據的同時異步調用它。我能想到的唯一想法是將回調函數傳遞給getData()函數,該函數在發送'end'事件並將其傳遞給數據'.on('end',funciton(){callback(allData );})'是否有其他可能性? – Flavio
是的,你明白了:回調。這是做事的「節點方式」。恕我直言,這是你應該如何處理這個問題:在'end'事件中調用回調。 –
非常感謝! – Flavio