diff --git a/packages/uni-mp-vue/lib/vue.runtime.esm.js b/packages/uni-mp-vue/lib/vue.runtime.esm.js index 75b49479c7b7d7da8bb2024894038133ae8a80b4..84bc5c9bcac4b3a163d771a9c445850497e01350 100644 --- a/packages/uni-mp-vue/lib/vue.runtime.esm.js +++ b/packages/uni-mp-vue/lib/vue.runtime.esm.js @@ -1413,10 +1413,17 @@ function queueJob(job) { queueFlush(); } } +// fixed by xxxxxx +function sleep(ms) { + return () => { + return new Promise(resolve => setTimeout(() => resolve(void 0), ms)); + }; +} function queueFlush() { if (!isFlushing && !isFlushPending) { isFlushPending = true; - currentFlushPromise = resolvedPromise.then(flushJobs); + // fixed by xxxxxx 延迟执行,避免同一批次的事件执行时机不正确,对性能可能有略微影响 https://github.com/dcloudio/uni-app/issues/3228 + currentFlushPromise = resolvedPromise.then(sleep(0)).then(flushJobs); } } function invalidateJob(job) {