'use strict'; var async = require('async'); var ended = require('is-stream-ended'); module.exports = function (array, stream, callback) { var arr = [].slice.call(array); async.whilst( function () { return !ended(stream) && arr.length > 0; }, function (next) { stream.push(arr.shift()); setImmediate(next); }, function () { callback(ended(stream)); }); };