В общем, это плохой шаблон: NodeJS REALLY REALLY REALLY не нравится, когда вы делаете такие вещи, потому что вы блокируете основной поток.Вы обнаружите, что ваше выступление действительно сосет.Так что не делай этого.Но если вы ДОЛЖНЫ, тогда вы можете попробовать это:
MyObj.prototype.read = function(){
var file3 = fs.createReadStream('test.txt', {encoding: 'utf8'});
var contentRead = '';
var done = false;
file3.addListener('data', function(data) {
contentRead += data.toString('utf-8');
});
file3.addListener("end", function () {
done = true;
});
while(!done);
return contentRead;
}
РЕДАКТИРОВАТЬ: @ Брэндон прав, а я не прав.Я только что проверил это, и хотя я думал, что обратные вызовы будут работать, весь процесс узла блокируется.Сделайте это:
MyObj.prototype.read = function(){
return fs.readFileSync('test.txt', 'utf-8');
}