refactor: simple

This commit is contained in:
cha0s 2019-09-08 08:29:31 -05:00
parent 1af713cfb8
commit 6d6a22d527

View File

@ -70,39 +70,15 @@ export class Actions extends decorate(Traversals) {
}
parallel(context) {
const promises = [];
const results = [];
const tickingPromises = [];
for (let i = 0; i < this.traversals.length; i++) {
const traversal = this.traversals[i];
let immediate = true;
const results = this.traversals.map((traversal) => {
const result = traversal.traverse(context);
if (result instanceof Promise) {
immediate = false;
}
results.push(result);
if (result instanceof TickingPromise) {
tickingPromises.push(result);
result.then(() => {
tickingPromises.splice(tickingPromises.indexOf(result), 1);
});
}
else if (result instanceof Promise) {
promises.push(result);
}
}
if (tickingPromises.length > 0) {
return new TickingPromise(
(resolve) => {
resolve(Promise.all(results));
},
(elapsed) => {
for (let i = 0; i < tickingPromises.length; i++) {
tickingPromises[i].tick(elapsed);
}
},
);
}
if (promises.length > 0) {
return Promise.all(results);
}
return results;
return immediate ? results : TickingPromise.all(results);
}
prologue() {