【发布时间】:2011-08-31 00:25:15
【问题描述】:
我在一个函数中有一个 NodeJS 读取流侦听器,我试图让我的函数返回一个从侦听器内部派生的值(文件的内容)。
例如:
MyObj.prototype.read = function(){ var file3 = fs.createReadStream('test.txt', {encoding: 'utf8'}); var contentRead = ''; file3.addListener('data', function(data) { contentRead += data.toString('utf-8'); 返回内容读取; }); }我想做类似 var contents = myDerivedObj.read() 的操作来返回文件的内容。
但是,来自侦听器内部的返回没有正确返回 - 得到“未定义”。而且,从侦听器外部返回只会返回一个空字符串。
我无法更改 read() 的签名,因此无法添加回调作为参数。
【问题讨论】:
标签: javascript node.js closures