Skip to content

Commit 576dda3

Browse files
committed
We're going back to microtasks (via Promise#then) for async! Fixes preactjs#708. Fixes preactjs/preact-compat#376.
1 parent 92f65df commit 576dda3

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/render-queue.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import options from './options';
2+
import { defer } from './util';
23
import { renderComponent } from './vdom/component';
34

45
/** Managed queue of dirty components to be re-rendered */
@@ -7,11 +8,10 @@ let items = [];
78

89
export function enqueueRender(component) {
910
if (!component._dirty && (component._dirty = true) && items.push(component)==1) {
10-
(options.debounceRendering || setTimeout)(rerender);
11+
(options.debounceRendering || defer)(rerender);
1112
}
1213
}
1314

14-
1515
export function rerender() {
1616
let p, list = items;
1717
items = [];

src/util.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,7 @@ export function extend(obj, props) {
77
return obj;
88
}
99

10-
10+
/** Call a function asynchronously, as soon as possible.
11+
* @param {Function} callback
12+
*/
13+
export const defer = typeof Promise=='function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy