Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | const Sync = { resolve, reject, all, then, catch: _catch } module.exports = { Sync } function resolve (value) { if (typeof value === 'object' && typeof value.err === 'object' && typeof value.val !== 'undefined') { return value } else { return {err: null, val: value} } } function reject (reason) { if (typeof reason === 'object' && typeof reason.err === 'object' && typeof reason.val !== 'undefined') { return {...reason, err: reason} } else { return {err: reason, val: null} } } function all (array) { try { let err = null const val = [] for (let i = 0; i < array.length; i++) { const elem = array[i] if (typeof elem === 'object') { if (elem.err === null) { if (typeof elem.val === 'undefined') { val.push(elem) } else { val.push(elem.val) } } else { err = elem.err val.push(null) } } else { val.push(elem) } } return {err, val} } catch (err) { return {err, val: null} } } function then (onFulfilled, onRejected) { return ({err, val}) => { try { return { err: typeof onRejected === 'function' ? onRejected(err) : err, val: typeof onFulfilled === 'function' ? onFulfilled(val) : val } } catch (err) { return {err, val: null} } } } function _catch (onRejected) { return ({err, val}) => { try { return {err: onRejected(err), val} } catch (err) { return {err, val: null} } } } |