From e47aca9687a4b89ca7cf8f3ab035d2af62453892 Mon Sep 17 00:00:00 2001 From: goynov Date: Sat, 4 Apr 2026 17:55:25 +0300 Subject: [PATCH] wrap finish event as promise --- src/lib/MotionEngine.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/MotionEngine.js b/src/lib/MotionEngine.js index ab95f5c..22e1b00 100644 --- a/src/lib/MotionEngine.js +++ b/src/lib/MotionEngine.js @@ -27,9 +27,10 @@ class MotionEngine { } // a = {o-object, a-attributes, t-time, f-finish event, d-delay, m-mode, r-repeat, - // rd-repeat the delay, rf-reset on finish, u-on update, s-scope} + // rd-repeat the delay, rf-reset on finish, u-on update, s-scope, p-promise on finish} this.add = function (a) { a = Array.isArray(a) ? a : [a]; + let r = []; a.forEach(e => { if (e.t == 0){ e.t = 1; @@ -37,7 +38,11 @@ class MotionEngine { }else{ aq.push(e); } + if (e.p && !e.f){ + r.push(new Promise( resolve=> e.f = resolve )) + } }); + if (r.length) return Promise.all(r); }; this.clear = function (object, reset = false) {