UNPKG

cyl-hooks-tools

Version:

基于react上下文实现的权限管理

36 lines (31 loc) 1.55 kB
/** * 与useEffect类似,可以接受一个Generator函数callback, * callback函数中可以 yield Promise,与async函数中的await Promise功能相同 * * 当deps发生变化或Component被卸载的时候, * 这个Generator函数的执行会中断在当前的yield位置。 * 中断时既不执行下一个语句,也不抛出异常, * 但finally块在中断后仍会被执行。 * * callback函数的finally块中可以使用isCancelled检查 * 当前执行过程是否被取消 * @param callback * @param deps */ export function useCoEffect(callback: (isCancelled: () => boolean) => Generator<Promise<any>, (() => void) | void, any>, deps: any[]): void export type ITailParameters<T extends (...args: any) => any> = T extends (a: any, ...b: infer I) => void ? I : [] /** * 与useCallback类似,可以接受一个Generator函数callback, * callback函数中可以 yield Promise,与async函数中的await Promise功能相同 * * 当deps发生变化或Component被卸载的时候, * 这个Generator函数的执行会中断在当前的yield位置。 * 中断时既不执行下一个语句,也不抛出异常, * 但finally块在中断后仍会被执行。 * * callback函数的finally块中可以使用isCancelled检查 * 当前执行过程是否被取消 * @param callback * @param deps */ export function useCoCallback<T extends (isCancelled: () => boolean, ...args: any) => Generator<Promise<any>, (() => void) | void, any>>(callback: T, deps: any[]): (...args: ITailParameters<T>) => void