UNPKG

ut2

Version:

一个现代 JavaScript 实用工具库。[点击查看在线文档]。

23 lines (19 loc) 509 B
'use strict'; var native = require('./internals/native.js'); var isPromiseLike = require('./isPromiseLike.js'); var guard = function (fn, shouldGuard) { var _guard = function (err) { if (shouldGuard && !shouldGuard(err)) { throw err; } return native.nativeUndefined; }; try { var result = fn(); return isPromiseLike(result) ? result.catch(_guard) : result; } catch (err) { return _guard(err); } }; module.exports = guard;