0
我讀過並且聽說我不應該在函數中返回值,因爲它是一個阻塞操作,並且它可能會拒絕任何請求,直到操作完成。node.js中的回調
所以這裏是一個我編碼的小函數,我想知道如果我正確處理它。我這樣說是因爲我剛開始使用節點,而且我想以正確的方式進行編碼,這也是因爲在函數內部有一個測試條件而另一個測試回調的感覺很奇怪。
function isWithinSplit(path, target, separator, callBack)
{
var response = "";
var readStream = fs.createReadStream(path);
readStream.on('data', function (data) {
response += data;
});
//Data complete, process it
readStream.on('end', function (close)
{
var array = response.split(separator);
for (var idx=0 ; idx < array.length; idx++)
{
if(array[idx] != "" && array[idx] == target)
callBack("true");
else
callBack("false");
}
});
}
電話:
fileHelper.isWithinSplit(__dirname + ROOM_LIST_PATH, "hello", "|", function(data){
if(data == "true")
console.log("hurray!");
});
我只是想知道這是否是人們如何做,如果它是有效的。
謝謝,我會調整我的代碼,並學習你的良好做法。 – 2011-12-29 21:05:55