我正在尝试使用带有 babel 的异步生成器的简洁语法(我被节点 8 卡住了),我想知道如何将事件发射器干净地转换为异步生成器
到目前为止我得到的看起来像这样
const { EventEmitter } = require('events')
// defer fonction for resolving promises out of scope
const Defer = () => {
let resolve
let reject
let promise = new Promise((a, b) => {
resolve = a
reject = b
})
return {
promise,
reject,
resolve
}
}
// my iterator function
function readEvents(emitter, channel) {
const buffer = [Defer()]
let subId = 0
emitter.on(channel, x => {
const promise = buffer[subId]
subId++
buffer.push(Defer())
promise.resolve(x) …Run Code Online (Sandbox Code Playgroud)