UNPKG

nutui-uniapp

Version:

京东风格的轻量级移动端 Uniapp、Vue3 组件库(支持小程序开发)

38 lines (34 loc) 720 B
import { isPromise } from './is' export type Interceptor = (...args: any[]) => Promise<boolean> | boolean | undefined | void export function funInterceptor(interceptor: Interceptor | undefined, { args = [], done, canceled, }: { args?: unknown[] done: (val?: any) => void canceled?: () => void }) { if (interceptor) { const returnVal = interceptor(null, ...args) if (isPromise(returnVal)) { returnVal .then((value) => { if (value) done(value) else if (canceled) canceled() }) .catch(() => {}) } else if (returnVal) { done() } else if (canceled) { canceled() } } else { done() } }