rubico
Version:
[a]synchronous functional programming
23 lines (20 loc) • 614 B
JavaScript
const isPromise = require('./isPromise')
const curry3 = require('./curry3')
const __ = require('./placeholder')
const callPropUnary = require('./callPropUnary')
const arrayMapPool = require('./arrayMapPool')
/**
* @name stringMapPool
*
* @synopsis
* ```coffeescript [specscript]
* stringMapPool(s string, concurrency number, f function) -> Promise|string
* ```
*/
const stringMapPool = function (s, concurrency, f) {
const result = arrayMapPool(s, concurrency, f)
return isPromise(result)
? result.then(curry3(callPropUnary, __, 'join', ''))
: result.join('')
}
module.exports = stringMapPool