Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js在'上返回;数据';事件_Javascript_Node.js - Fatal编程技术网

Javascript node.js在'上返回;数据';事件

Javascript node.js在'上返回;数据';事件,javascript,node.js,Javascript,Node.js,假设我想返回事件循环的“数据”事件的数据: var fs = require('fs'); var test = function(str){ stream = fs.createReadStream(str, { flags: 'r', encoding: 'utf-8', fd: null, bufferSize: 1 }), line =''; stream.on('data', functi

假设我想返回事件循环的“数据”事件的数据:

var fs = require('fs');
var test = function(str){
    stream = fs.createReadStream(str, {
        flags: 'r',
        encoding: 'utf-8',
        fd: null,
        bufferSize: 1
    }),
    line ='';

    stream.on('data', function(char){
        return line += char;
    }); 
    stream.on('end', function(){
        console.log(line.length);
    }); 
}
test("/path/to/file");
这与我写作时的区别是什么:

stream.on('data', function(char){
    line += char;
}); 

非常感谢。

没有区别。事件处理程序中的返回值被忽略/丢弃。

如果我将返回放在流之前,会发生什么情况。on('end',function()…)?我的意思是在一个代码块中有多个返回。那么Node将做什么呢?它会返回什么?执行是否与中间没有返回时相同?
return
仅对该特定函数有效。因此,在添加“结束”处理程序之前添加一个
return
,这意味着您将获得“数据”事件,但没有“结束”事件
return
本身返回
undefined
,因此在这种情况下也没有区别(因为函数的默认返回值是
undefined
)。我的意思是,您可以使用侦听器订阅一些事件。然后发生第一个事件,在它内部您从函数返回值(在它内部您订阅事件侦听器)。因此,在这种情况下,区别是显而易见的,因为其他事件侦听器(尽管已订阅)将永远不会执行。我想得对吗?on
data
事件采用回调函数。这是一种观察者模式。回调是否返回某些内容并不重要,因为返回值不会返回给任何人。是否在事件处理程序中返回http响应(或数据库响应)是否重要?