ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-Node.js事件流:在哪里设置setMaxListeners?

2019-10-12 13:42:54  阅读:742  来源: 互联网

标签:eventemitter javascript node-js gulp event-stream


我搜索并搜索了此搜索,但无济于事.我已经梳理了网络(包括Stackoverflow)和Node文档,得到了答案,但没有找到一个可行的方法(也许这对我来说很不好).我正在使用gulp配置文件中的事件流,并且有一个特殊任务正在从EventEmitter类中遇到经典的“检测到内存泄漏”错误.根据我的发现,解决此问题的答案似乎是调用EventEmitter类的setMaxListeners方法.我的研究建议事件流具有一个Stream对象,该对象应该是EventEmitter的实例.但是,无论我以什么方式尝试调用setMaxListeners,都无法找到方法.在研究完这个问题之后,我想我会把它带到这里的Node专家中(我假设这很简单,只是缺少了一些东西).这是我的代码:

return eventStream.merge(
        gulp.src('./jscript/libs/file-one.js'),
        gulp.src('./jscript/libs/filder_one/file-two.js'),
        gulp.src('./jscript/libs/folder_two/file-three.js'),
        gulp.src('./jscript/libs/folder_three/file_four.js'),
        gulp.src('./jscript/libs/folder_four/file_five.js'),
        gulp.src('./jscript/libs/folder_five/file_six.js'), 
        gulp.src('./jscript/libs/file_seven.js'),
        gulp.src('./jscript/libs/file_eight.js'),
        gulp.src('./jscript/lists/rules/*.js')
    )        
    .pipe(concat('my_file.js'))
    .pipe(gulp.dest('./jscript/dist/'))
    .pipe(rename('my_file.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest('./jscript/dist/'));

谢谢!

解决方法:

这不是您问题的直接答案,但是您可以将一组glob模式传递给’gulp.src()’,而不是合并多个’gulp.src()’.它不能解决您的问题吗?

https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulpsrcglobs-options

编辑

作为直接回答,以下对我有用:

var merged = eventStream.merge(...);
merged.setMaxListeners(0);
return merged.pipe(...);

在合并函数中添加事件侦听器后,似乎在事件循环的滴答声之间检查了侦听器计数.因此,我们可以在添加侦听器后立即设置setMaxListeners.

标签:eventemitter,javascript,node-js,gulp,event-stream
来源: https://codeday.me/bug/20191012/1900967.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有