UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

25 lines (21 loc) 810 B
import { DataFrame } from '../../data/DataFrame'; import { PushOptions } from '../../graph/options'; import { SinkNode, SinkNodeOptions } from '../SinkNode'; /** * @category Sink node */ export class CallbackSinkNode<In extends DataFrame> extends SinkNode<In> { public callback: (frame: In | In[], options?: PushOptions) => Promise<void> | void; constructor( callback: (frame: In | In[], options?: PushOptions) => Promise<void> | void = () => null, options?: SinkNodeOptions, ) { super(options); this.callback = callback; } public onPush(frame: In, options?: PushOptions): Promise<void> { return new Promise<void>((resolve, reject) => { Promise.resolve(this.callback(frame, options)).then(resolve).catch(reject); }); } }