cloudfunctions/ClearingRedundantFolders/node_modules/atomically/src/utils/attemptify.ts

(完整代码) 718B


/* IMPORT */

import {NOOP} from '../consts';
import {Exception, FN} from '../types';

/* ATTEMPTIFY */

//TODO: Maybe publish this as a standalone package
//FIXME: The type castings here aren't exactly correct

const attemptifyAsync = <T extends FN> ( fn: T, onError: FN<[Exception]> = NOOP ): T => {

  return function () {

    return fn.apply ( undefined, arguments ).catch ( onError );

  } as T;

};

const attemptifySync = <T extends FN> ( fn: T, onError: FN<[Exception]> = NOOP ): T => {

  return function () {

    try {

      return fn.apply ( undefined, arguments );

    } catch ( error ) {

      return onError ( error );

    }

  } as T;

};

/* EXPORT */

export {attemptifyAsync, attemptifySync};

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。