You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21 lines
472 B
JavaScript

"use strict";
module.exports = function createResultBuffer() {
let buffer = [];
return {
push: function (item) {
// NOTE: item should always be a Promise, either resolved or rejected! Use Promise.resolve or Promise.reject to wrap an item if necessary
// FIXME: Actually validate this
buffer.push(item);
},
maybeRead: function (readCallback) {
if (buffer.length > 0) {
return buffer.shift();
} else {
return readCallback();
}
}
};
};