@openhps/core
Version:
Open Hybrid Positioning System - Core component
30 lines (26 loc) • 839 B
text/typescript
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<InOut extends DataFrame> extends ProcessingNode<InOut, InOut> {
private _timeout: number;
private _timeoutUnit: TimeUnit;
constructor(timeout: number, timeoutUnit: TimeUnit) {
super();
this._timeout = timeout;
this._timeoutUnit = timeoutUnit;
}
public process(frame: InOut): Promise<InOut> {
return new Promise((resolve) => {
setTimeout(
() => {
resolve(frame);
},
this._timeoutUnit.convert(this._timeout, TimeUnit.MILLISECOND),
);
});
}
}