UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

84 lines (71 loc) 2.05 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /* * @Author: w.pengfei * @Date: 2020-09-06 14:37:52 * @LastEditTime: 2020-09-06 19:29:08 * @Description: '' * @LastEditors: w.pengfei */ var serialPromise = function serialPromise(arr) { return new Promise(function (resolve, reject) { if (!Array.isArray(arr)) { return reject('The parameter type is not an array'); } if (!arr || !arr.length) { return reject(!arr ? 'Parameter is undefined' : 'Empty array'); } var arrLen = arr.length; var generator = /*#__PURE__*/_regenerator2['default'].mark(function generator() { var i, len; return _regenerator2['default'].wrap(function generator$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: i = 0, len = arr.length; case 1: if (!(i < len)) { _context.next = 7; break; } _context.next = 4; return arr[i]; case 4: i++; _context.next = 1; break; case 7: case 'end': return _context.stop(); } } }, generator, this); }); var genRes = generator(); var step = function step(nextHandler) { var next = nextHandler(); arrLen--; if (arrLen <= 0 && next.done) { resolve('All success'); } if (next.value) { next.value.then(function (data) { step(function () { return genRes.next(); }); })['catch'](function (e) { return reject(e); }); } }; step(function () { return genRes.next(); }); }); }; exports['default'] = serialPromise;