(test, iteratee, callback)
| 39 | * ); |
| 40 | */ |
| 41 | export default function whilst(test, iteratee, callback) { |
| 42 | callback = onlyOnce(callback || noop); |
| 43 | var _iteratee = wrapAsync(iteratee); |
| 44 | if (!test()) return callback(null); |
| 45 | var next = rest(function(err, args) { |
| 46 | if (err) return callback(err); |
| 47 | if (test()) return _iteratee(next); |
| 48 | callback.apply(null, [null].concat(args)); |
| 49 | }); |
| 50 | _iteratee(next); |
| 51 | } |