@fast-china/utils
Version:
Fast 工具库.
1 lines • 1.47 kB
Source Map (JSON)
{"version":3,"file":"func.mjs","sources":["../../../../src/vue/func.ts"],"sourcesContent":["/**\n * 执行方法\n * @param fn 要执行的方法\n * @param args 参数\n */\n\nimport { consoleError } from \"../console\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport const execFunction = async <T = void>(fn: Function, ...args: any[]): Promise<T> => {\n\tif (!fn) return Promise.resolve(undefined);\n\t// 判断是否为异步方法\n\tif (fn.constructor.name === \"AsyncFunction\") {\n\t\t// 异步方法\n\t\ttry {\n\t\t\treturn await fn(...args);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"execFunction\", error as any);\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t} else {\n\t\t// 同步方法\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst res = fn(...args);\n\t\t\t\treturn resolve(res);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"execFunction\", error as any);\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t});\n\t}\n};\n"],"names":[],"mappings":";AASa,MAAA,eAAe,OAAiB,OAAiB,SAA4B;AACzF,MAAI,CAAC,GAAW,QAAA,QAAQ,QAAQ,MAAS;AAErC,MAAA,GAAG,YAAY,SAAS,iBAAiB;AAExC,QAAA;AACI,aAAA,MAAM,GAAG,GAAG,IAAI;AAAA,aACf,OAAO;AACf,mBAAa,gBAAgB,KAAY;AAClC,aAAA,QAAQ,OAAO,KAAK;AAAA,IAAA;AAAA,EAC5B,OACM;AAEN,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACnC,UAAA;AACG,cAAA,MAAM,GAAG,GAAG,IAAI;AACtB,eAAO,QAAQ,GAAG;AAAA,eACV,OAAO;AACf,qBAAa,gBAAgB,KAAY;AACzC,eAAO,OAAO,KAAK;AAAA,MAAA;AAAA,IACpB,CACA;AAAA,EAAA;AAEH;"}