Node.js输入数据事件停止
Node.js input data event stop
我使用这个函数来获取Node.js应用程序中请求的输入数据:
function getData(callback){
req.data = '';
req.receivedDataSize = 0;
req.maxDataSize = 5000;
req.dataCorrupted = false;
req.on('data', function(chunk){
if(req.dataCorrupted === false && chunk.length < req.maxDataSize && req.receivedDataSize < req.maxDataSize){
req.data += chunk;
req.receivedDataChunk += chunk.length;
} else {
// throw 413 error.
req.dataCorrupted = true;
return;
});
req.on('end', function(){
if(req.dataCorrupted === false){
callback(null);
} else {
callback('input-data-corrupted');
}
return;
});
}
我想知道每个事件回调中的这些"return"语句是如何使用的,当我抛出"return"时,下一个"req.on('data')||req.oon('end')"会发生什么?有没有一种方法可以停止事件侦听器来停止侦听该事件,或者只是调用"req.end();"是一种正确的停止方法?
在您的示例中,return
不执行任何操作,而是结束函数并返回一个值。这并不能阻止流回叫。您可以从代码示例中完全删除这些语句,它也可以正常工作。
如果是流,调用req.end()
应该终止它,这意味着req.on('data')
将不再被触发。
以下是关于流的API文档:
http://nodejs.org/api/stream.html#stream_stream_end
这也是节点中流的有用指南:http://maxogden.com/node-streams
相关文章:
- 当使用“”时,事件数据在jquery中返回空对象;on()”;
- 如何更新angular2中组件之间的事件数据
- 不;t使用ajax在fullcalender.js中加载事件数据
- jQuery触发器触发点击事件,但不发送事件数据
- 在addListener中传递google事件数据
- 如何获取整个 JavaScript 范围内上次单击的事件数据
- 动画步骤和事件数据
- 为什么此 Google 日历 API 请求不返回开始时间等事件数据
- ui5 SplitContainer 不会将事件数据传递给子元素中的 onBeforeShow
- 如何动态打印 JQuery 移动点击事件数据
- 加载从跨文档消息传递中作为事件数据获得的 pdf
- WoopraTracker 未在自定义事件数据中定义
- 如何处理来自 websocket 的消息事件数据
- 如何将多个事件数据组合为一个适合与fullcalendar一起使用的对象或变量
- Ace编辑器-如何传递事件数据
- 谷歌可视化图表在选择事件数据时发出警报
- 如何将事件数据和id传递给javascript函数
- 使用jQuery将事件数据传递给回调函数
- 如何在两个模块之间传递事件数据
- 正在尝试将事件数据传递给函数