UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

40 lines 1.14 kB
import { DataObject } from '../../data'; import { DataFrame } from '../../data/DataFrame'; import { SourceNode } from '../SourceNode'; /** * @category Source node */ export class HistorySourceNode extends SourceNode { constructor(options) { super(options); } onPull(options = { requestedObjects: [] }) { return new Promise((resolve, reject) => { const service = this.model.findDataService(DataObject); const requestPromises = []; options.requestedObjects.forEach(uid => { requestPromises.push(new Promise(resolve => { service.findByUID(uid).then(object => { resolve(object); }).catch(() => { // Ignore resolve(undefined); }); })); }); // Complete service requests Promise.all(requestPromises).then(objects => { // Create a new dataframe from these objects const frame = new DataFrame(this.source); objects.forEach(object => { if (object) { frame.addObject(object); } }); resolve(frame); }).catch(reject); }); } }