You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
542 B
30 lines
542 B
3 years ago
|
/* eslint no-constant-condition: 0 */
|
||
|
/**
|
||
|
* Obliterator Consume Function
|
||
|
* =============================
|
||
|
*
|
||
|
* Function consuming the given iterator for n or every steps.
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Consume.
|
||
|
*
|
||
|
* @param {Iterator} iterator - Target iterator.
|
||
|
* @param {number} [steps] - Optional steps.
|
||
|
*/
|
||
|
module.exports = function consume(iterator, steps) {
|
||
|
var step,
|
||
|
l = arguments.length > 1 ? steps : Infinity,
|
||
|
i = 0;
|
||
|
|
||
|
while (true) {
|
||
|
if (i === l) return;
|
||
|
|
||
|
step = iterator.next();
|
||
|
|
||
|
if (step.done) return;
|
||
|
|
||
|
i++;
|
||
|
}
|
||
|
};
|