18 lines
488 B
JavaScript
18 lines
488 B
JavaScript
const Promise = require('any-promise')
|
|
const assert = require('assert')
|
|
|
|
module.exports = each
|
|
|
|
// apply a function to all values
|
|
// should only be used for side effects
|
|
// (fn) -> prom
|
|
function each (fn) {
|
|
assert.equal(typeof fn, 'function')
|
|
return function (arr) {
|
|
arr = Array.isArray(arr) ? arr : [arr]
|
|
|
|
return arr.reduce(function (prev, curr, i) {
|
|
return prev.then(function () { return fn(curr, i, arr.length) })
|
|
}, Promise.resolve()).then(function () {})
|
|
}
|
|
}
|