import { BaseComponent } from './BaseComponent';
const __ = {
private: Symbol('private'),
}
/**
* @class TaskExecutorComponent
* The task executor component.
* @memberof THING
* @extends THING.BaseComponent
*/
class TaskExecutorComponent extends BaseComponent {
constructor() {
super();
this[__.private] = {};
let _private = this[__.private];
_private.promises = [];
}
add(promise) {
let _private = this[__.private];
_private.promises.push(promise);
}
clear() {
let _private = this[__.private];
_private.promises.length = 0;
}
then(callback, error) {
let _private = this[__.private];
Promise.all(_private.promises).then(callback, error);
}
get promises() {
let _private = this[__.private];
return _private.promises;
}
}
export { TaskExecutorComponent }