import { DataFrame } from '../../data'; import { TimeUnit } from '../../utils'; import { ProcessingNode } from '../ProcessingNode'; /** * Frame delay node to delay pushing of frames. * @category Flow shape */ export class FrameDelayNode extends ProcessingNode { private _timeout: number; private _timeoutUnit: TimeUnit; constructor(timeout: number, timeoutUnit: TimeUnit) { super(); this._timeout = timeout; this._timeoutUnit = timeoutUnit; } public process(frame: InOut): Promise { return new Promise((resolve) => { setTimeout( () => { resolve(frame); }, this._timeoutUnit.convert(this._timeout, TimeUnit.MILLISECOND), ); }); } }