(iteratee, test, callback)
| 27 | * `iteratee`'s callback. Invoked with (err, [results]); |
| 28 | */ |
| 29 | export default function doWhilst(iteratee, test, callback) { |
| 30 | callback = onlyOnce(callback || noop); |
| 31 | var _iteratee = wrapAsync(iteratee); |
| 32 | var next = rest(function(err, args) { |
| 33 | if (err) return callback(err); |
| 34 | if (test.apply(this, args)) return _iteratee(next); |
| 35 | callback.apply(null, [null].concat(args)); |
| 36 | }); |
| 37 | _iteratee(next); |
| 38 | } |