UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

73 lines (65 loc) 1.79 kB
import _regeneratorRuntime from 'babel-runtime/regenerator'; /* * @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__*/_regeneratorRuntime.mark(function generator() { var i, len; return _regeneratorRuntime.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(); }); }); }; export default serialPromise;