polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
31 lines (30 loc) • 681 B
JavaScript
export class CookController {
constructor() {
this._cooking_nodes_by_id = new Map();
this._resolves = [];
}
add_node(node) {
this._cooking_nodes_by_id.set(node.graphNodeId(), node);
}
remove_node(node) {
this._cooking_nodes_by_id.delete(node.graphNodeId());
if (this._cooking_nodes_by_id.size == 0) {
this.flush();
}
}
flush() {
let callback;
while (callback = this._resolves.pop()) {
callback();
}
}
async waitForCooksCompleted() {
if (this._cooking_nodes_by_id.size == 0) {
return;
} else {
return new Promise((resolve, reject) => {
this._resolves.push(resolve);
});
}
}
}