noflo-core
Version:
NoFlo Essentials
46 lines (31 loc) • 871 B
text/coffeescript
noflo = require 'noflo'
unless noflo.isBrowser()
util = require 'util'
else
util =
inspect: (data) -> data
class RepeatAsync extends noflo.Component
description: "Like 'Repeat', except repeat on next tick"
constructor: ->
= []
# Ports
=
in: new noflo.Port()
=
out: new noflo.Port()
# Forward on next tick
.in.on 'begingroup', (group) =>
.push(group)
.in.on 'data', (data) =>
groups =
later = () =>
for group in groups
.out.beginGroup(group)
.out.send(data)
for group in groups
.out.endGroup()
.out.disconnect()
setTimeout(later, 0)
.in.on 'disconnect', () =>
= []
exports.getComponent = () -> new RepeatAsync