@fast-china/utils
Version:
Fast 工具库.
1 lines • 1.43 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":["execFunction","async","fn","args","Promise","resolve","constructor","name","reject","error","consoleError"],"mappings":"oDASO,MAAMA,EAAeC,MAAiBC,KAAiBC,KAC7D,IAAKD,EAAI,OAAOE,QAAQC,aAAQ,GAEhC,GAA4B,kBAAxBH,EAAGI,YAAYC,KAUlB,OAAO,IAAIH,QAAQ,CAACC,EAASG,KAC5B,IAEC,OAAOH,EADKH,KAAMC,GAEnB,OAASM,GAER,OADAC,EAAa,eAAgBD,GACtBD,EAAOC,EACf,IAfD,IACC,aAAaP,KAAMC,EACpB,OAASM,GAER,OADAC,EAAa,eAAgBD,GACtBL,QAAQI,OAAOC,EACvB"}