ut2
Version:
一个现代 JavaScript 实用工具库。[点击查看在线文档]。
23 lines (19 loc) • 509 B
JavaScript
;
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;