当前位置: 首页 > 工具软件 > EventProxy > 使用案例 >

[EventProxy(三)]EventProxy之tail说明

单于高逸
2023-12-01

假设你已经阅读并基本理解了EventProxy的官方说明https://www.npmjs.com/package/eventproxy,否则你有两个选择:

1、先阅读官方说明,再浏览本文

2、如果不愿意做第1条,关闭本页面去别处逛逛。

言归正传。

var fs=require("fs");

varEventProxy=require("eventproxy");

var ep = new EventProxy();

 

ep.tail('file','counter', function (file, date) {

       //注:

    // 待所有指定的事件都触发后,将第一次回调

    // 以后再触发其中之一的事件,都会回调。

   console.log(file);

   console.log(date);

});

fs.readFile('D:\\2.txt', 'utf-8', function(err, content) {

   ep.emit('file', content);

});

setInterval(function () {

       ep.emit('counter', Date());

}, 2000);

 

运行结果:

4.welcome to my home.

5.welcome to my home.

6.welcome to my home.

Thu Apr 23 2015 16:58:16 GMT+0800 (中国标准时间)

4.welcome to my home.

5.welcome to my home.

6.welcome to my home.

Thu Apr 23 2015 16:58:18 GMT+0800 (中国标准时间)

4.welcome to my home.

5.welcome to my home.

6.welcome to my home.

Thu Apr 23 2015 16:58:20 GMT+0800 (中国标准时间)

4.welcome to my home.

5.welcome to my home.

6.welcome to my home.

Thu Apr 23 2015 16:58:22 GMT+0800 (中国标准时间)

……

可以看到,尽管定时器第二次触发时,'file'事件并没有再次触发,但tail仍然保留着上一次'file'事件的内容,而不是null或undefined。实际上,tail回调函数中所引用的参数,只要用户不显式销毁或释放(例如不对mongodb数据库调用colse方法,如果该参数是个db对象的话,已测),引用的参数将一直有效。


 类似资料: