From 95485ba4010b86ab277993d12cdd91c79230c949 Mon Sep 17 00:00:00 2001 From: yoyo837 Date: Wed, 27 May 2020 16:30:36 +0800 Subject: [PATCH 1/3] add raf util --- src/raf.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/raf.ts diff --git a/src/raf.ts b/src/raf.ts new file mode 100644 index 00000000..3f6f4c5d --- /dev/null +++ b/src/raf.ts @@ -0,0 +1,14 @@ +let raf = (fn: () => void) => +setTimeout(fn, 16); +let caf = (num: number) => clearTimeout(num); + +if (typeof window !== 'undefined') { + raf = requestAnimationFrame; + caf = cancelAnimationFrame; +} + +// Support call raf with delay specified frame +export default function wrapperRaf(callback: () => void): number { + return raf(callback); +} + +wrapperRaf.cancel = caf; From 03964d564ecf9a448da8a4ce3e091777f9b16e27 Mon Sep 17 00:00:00 2001 From: yoyo837 Date: Wed, 27 May 2020 16:31:51 +0800 Subject: [PATCH 2/3] remove comment --- src/raf.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/raf.ts b/src/raf.ts index 3f6f4c5d..84fad014 100644 --- a/src/raf.ts +++ b/src/raf.ts @@ -6,7 +6,6 @@ if (typeof window !== 'undefined') { caf = cancelAnimationFrame; } -// Support call raf with delay specified frame export default function wrapperRaf(callback: () => void): number { return raf(callback); } From 7ba9c8d3ebc9820779bd21c0e38a6ffec94c91b5 Mon Sep 17 00:00:00 2001 From: yoyo837 Date: Wed, 27 May 2020 16:39:14 +0800 Subject: [PATCH 3/3] add test case --- tests/raf.test.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 tests/raf.test.js diff --git a/tests/raf.test.js b/tests/raf.test.js new file mode 100644 index 00000000..374053e5 --- /dev/null +++ b/tests/raf.test.js @@ -0,0 +1,19 @@ +import raf from '../src/raf'; + +describe('raf', () => { + it('test Raf', done => { + jest.useRealTimers(); + + let bamboo = false; + raf(() => { + bamboo = true; + }); + + expect(bamboo).toBe(false); + + raf(() => { + expect(bamboo).toBe(true); + done(); + }); + }); +});