diff --git a/src/dn/Delayer.hx b/src/dn/Delayer.hx index 916b010..5b893ff 100644 --- a/src/dn/Delayer.hx +++ b/src/dn/Delayer.hx @@ -47,6 +47,15 @@ class Delayer { // } // } + /** Completes all tasks immediately (tasks callbacks will be called) */ + public function completeEverything() { + var all = delays.copy(); + delays = []; + for(d in all) + d.cb(); + } + + /** Cancels all tasks (their callbacks won't be called) */ public function cancelEverything() { delays = []; } @@ -157,6 +166,16 @@ class Delayer { delayer.cancelById("test"); delayer.update(1); + // Completing all + var n = 0; + delayer.addF("a", ()->n++, 1); + delayer.addF("b", ()->n++, 99); + delayer.addF("c", ()->n++, 99); + delayer.update(1); + CiAssert.equals( n, 1 ); + delayer.completeEverything(); + CiAssert.equals( n, 3 ); + // Next frame var done = false; delayer.nextFrame( ()->done=true );