cyl-hooks-tools
Version:
基于react上下文实现的权限管理
36 lines (31 loc) • 1.55 kB
TypeScript
/**
* 与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