更新时间:2022-05-25 23:01:08
您需要一个事件存储桶,下面是一个示例:
You need a event bucket, here is an example:
function bucket() {
const stack = [],
iterate = bucket();
var next;
async function* bucket() {
while (true) {
yield new Promise((res) => {
if (stack.length > 0) {
return res(stack.shift());
}
next = res;
});
}
}
iterate.push = (itm) => {
if (next) {
next(itm);
next = false;
return;
}
stack.push(itm);
}
return iterate;
}
;
(async function() {
let evts = new bucket();
setInterval(() => {
evts.push(Date.now());
evts.push(Date.now() + '++');
}, 1000);
for await (let evt of evts) {
console.log(evt);
}
})();