小编Ove*_*9ck的帖子

如何将事件发射器用作异步生成器

我正在尝试使用带有 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)

events asynchronous generator node.js babeljs

9
推荐指数
1
解决办法
1753
查看次数

标签 统计

asynchronous ×1

babeljs ×1

events ×1

generator ×1

node.js ×1