nested.js 886 B

1234567891011121314151617181920212223242526272829303132333435
  1. var binary = require('../');
  2. var test = require('tap').test;
  3. var EventEmitter = require('events').EventEmitter;
  4. test('nested', function (t) {
  5. t.plan(3);
  6. var insideDone = false;
  7. var em = new EventEmitter;
  8. binary.stream(em)
  9. .word16be('ab')
  10. .tap(function () {
  11. this
  12. .word8('c')
  13. .word8('d')
  14. .tap(function () {
  15. insideDone = true;
  16. })
  17. ;
  18. })
  19. .tap(function (vars) {
  20. t.ok(insideDone);
  21. t.same(vars.c, 'c'.charCodeAt(0));
  22. t.same(vars.d, 'd'.charCodeAt(0));
  23. })
  24. ;
  25. var strs = [ 'abc', 'def', 'hi', 'jkl' ];
  26. var iv = setInterval(function () {
  27. var s = strs.shift();
  28. if (s) em.emit('data', new Buffer(s));
  29. else clearInterval(iv);
  30. }, 50);
  31. });