eventproxy-test.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /**
  2. * Created by fy on 15-10-7.
  3. */
  4. 'use strict';
  5. var fs = require('fs');
  6. var EventProxy = require('eventproxy');
  7. var ep = new EventProxy();
  8. // ##############################################################################
  9. ep.all('tpl', 'data', function (tpl, data) { // or ep.all(['tpl', 'data'], function (tpl, data) {})
  10. // 在所有指定的事件触发后,将会被调用执行
  11. // 参数对应各自的事件名
  12. console.log(tpl);
  13. console.log(data);
  14. });
  15. fs.readFile('test/eventproxy-test.js', 'utf-8', function (err, content) {
  16. ep.emit('tpl', content);
  17. });
  18. setTimeout(function () {
  19. ep.emit('data', 'hello event');
  20. }, 10000);
  21. // ##############################################################################
  22. var files = [
  23. '/home/fy/workspaces/laotang/laotang_zsy_sb_manage/test/class-test.js',
  24. '/home/fy/workspaces/laotang/laotang_zsy_sb_manage/test/co-test.js',
  25. '/home/fy/workspaces/laotang/laotang_zsy_sb_manage/test/co-test2.js',
  26. '/home/fy/workspaces/laotang/laotang_zsy_sb_manage/test/es7-test.es7.js',
  27. '/home/fy/workspaces/laotang/laotang_zsy_sb_manage/test/es7-test.js',
  28. '/home/fy/workspaces/laotang/laotang_zsy_sb_manage/test/eventproxy-test.js',
  29. '/home/fy/workspaces/laotang/laotang_zsy_sb_manage/test/zip-test.js'
  30. ];
  31. ep.after('got_file', files.length, function (list) {
  32. // 在所有文件的异步执行结束后将被执行
  33. // 所有文件的内容都存在list数组中
  34. console.log(list);
  35. });
  36. for (var i = 0; i < files.length; i++) {
  37. fs.readFile(files[i], 'utf-8', ep.done('got_file'));
  38. /* fs.readFile(files[i], 'utf-8', function (err, content) {
  39. ep.emit('got_file', content);
  40. }); */
  41. /*fs.readFile(files[i], 'utf-8', ep.group('got_file'));*/
  42. }
  43. // ##############################################################################
  44. ep.tail('tpl', 'data', function (tpl, data) {
  45. // 在所有指定的事件触发后,将会被调用执行
  46. // 参数对应各自的事件名的最新数据
  47. console.log(tpl);
  48. console.log(data);
  49. console.log('----------------');
  50. });
  51. fs.readFile('test/eventproxy-test.js', 'utf-8', function (err, content) {
  52. ep.emit('tpl', content);
  53. });
  54. var inter = setInterval(function () {
  55. ep.emit('data', 'hello...');
  56. }, 2000);
  57. setTimeout(function () {
  58. clearInterval(inter);
  59. }, 21000);