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
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();
|
|
}
|
|
}
|
|
};
|
|
};
|