UNPKG

esnext-async

Version:

Patterns for asynchronous computation in ES.next

144 lines (115 loc) 4.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loop = exports.run = undefined; var _regenerator = require("babel-runtime/regenerator"); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator"); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); /* eslint-disable consistent-return, lines-around-comment */ var run = exports.run = function () { var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(fn) { var _len, args, _key, _args = arguments; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; for (_len = _args.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = _args[_key]; } _context.next = 4; return fn.apply(undefined, args); case 4: return _context.abrupt("return", _context.sent); case 7: _context.prev = 7; _context.t0 = _context["catch"](0); setTimeout(function () { throw _context.t0; }, 0); case 10: case "end": return _context.stop(); } } }, _callee, this, [[0, 7]]); })); return function run(_x, _x2) { return _ref.apply(this, arguments); }; }(); /* eslint-enable consistent-return, lines-around-comment */ var loop = exports.loop = function () { var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(fn) { var _this = this; return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return run((0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2() { return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!true) { _context2.next = 5; break; } _context2.next = 3; return fn(); case 3: _context2.next = 0; break; case 5: case "end": return _context2.stop(); } } }, _callee2, _this); }))); case 2: case "end": return _context3.stop(); } } }, _callee3, this); })); return function loop(_x3) { return _ref2.apply(this, arguments); }; }(); exports.tryCatch = tryCatch; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function tryCatch(fn) { var _this2 = this; return function () { var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4() { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return run.apply(undefined, [fn].concat(args)); case 2: return _context4.abrupt("return", _context4.sent); case 3: case "end": return _context4.stop(); } } }, _callee4, _this2); })); return function (_x4) { return _ref4.apply(this, arguments); }; }(); }