fix(core): update
This commit is contained in:
36
ts/taskbuffer.classes.cyclecounter.ts
Normal file
36
ts/taskbuffer.classes.cyclecounter.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import * as plugins from './taskbuffer.plugins';
|
||||
import { Task } from './taskbuffer.classes.task';
|
||||
|
||||
export interface ICycleObject {
|
||||
cycleCounter: number;
|
||||
deferred: plugins.smartpromise.Deferred<any>;
|
||||
}
|
||||
|
||||
export class CycleCounter {
|
||||
public task: Task;
|
||||
public cycleObjectArray: ICycleObject[] = [];
|
||||
constructor(taskArg: Task) {
|
||||
this.task = taskArg;
|
||||
}
|
||||
public getPromiseForCycle(cycleCountArg: number) {
|
||||
const done = plugins.smartpromise.defer();
|
||||
const cycleObject: ICycleObject = {
|
||||
cycleCounter: cycleCountArg,
|
||||
deferred: done
|
||||
};
|
||||
this.cycleObjectArray.push(cycleObject);
|
||||
return done.promise;
|
||||
}
|
||||
public informOfCycle(x) {
|
||||
const newCycleObjectArray: ICycleObject[] = [];
|
||||
this.cycleObjectArray.forEach(cycleObjectArg => {
|
||||
cycleObjectArg.cycleCounter--;
|
||||
if (cycleObjectArg.cycleCounter <= 0) {
|
||||
cycleObjectArg.deferred.resolve(x);
|
||||
} else {
|
||||
newCycleObjectArray.push(cycleObjectArg);
|
||||
}
|
||||
});
|
||||
this.cycleObjectArray = newCycleObjectArray;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user