16 lines
329 B
JavaScript
16 lines
329 B
JavaScript
|
"use strict";
|
||
|
|
||
|
module.exports = consume;
|
||
|
|
||
|
function consume(channel, emit) {
|
||
|
return function (callback) {
|
||
|
channel.take(onItem);
|
||
|
function onItem(err, item) {
|
||
|
if (item === undefined) return callback(err);
|
||
|
try { emit(item); }
|
||
|
catch (err) { return callback(err); }
|
||
|
channel.take(onItem);
|
||
|
}
|
||
|
};
|
||
|
}
|