mirror of
https://github.com/pengzhanbo/vuepress-theme-plume.git
synced 2026-04-25 11:28:13 +08:00
23 lines
517 B
TypeScript
23 lines
517 B
TypeScript
export interface ScrollPromise {
|
|
wait: () => Promise<void> | null
|
|
pending: () => void
|
|
resolve: () => void
|
|
}
|
|
|
|
let promise: Promise<void> | null = null
|
|
let promiseResolve: (() => void) | null = null
|
|
|
|
const scrollPromise: ScrollPromise = {
|
|
wait: () => promise,
|
|
pending: () => {
|
|
promise = new Promise(resolve => (promiseResolve = resolve))
|
|
},
|
|
resolve: () => {
|
|
promiseResolve?.()
|
|
promise = null
|
|
promiseResolve = null
|
|
},
|
|
}
|
|
|
|
export const useScrollPromise = (): ScrollPromise => scrollPromise
|