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.
24 lines
512 B
JavaScript
24 lines
512 B
JavaScript
"use strict";
|
|
|
|
const pushBuffer = require("./");
|
|
|
|
function promiseDelay(time) {
|
|
return new Promise((resolve, reject) => {
|
|
setTimeout(resolve, time);
|
|
});
|
|
}
|
|
|
|
(async function () {
|
|
let i = 0;
|
|
let buffer = pushBuffer({
|
|
lanes: 2,
|
|
pull: async () => promiseDelay(Math.random() * 50).then(() => i++),
|
|
select: (value) => value % 2
|
|
});
|
|
|
|
for (let n = 0; n < 100; n++) {
|
|
buffer.request(n % 2).then((value) => console.log(`[lane ${n % 2}] ${n} -> ${value}`))
|
|
await promiseDelay(Math.random() * 50);
|
|
}
|
|
})();
|