小编Sag*_*dir的帖子

es6从静态函数访问类构造函数

我正在尝试创建一个生成新实例的静态函数。该实例是静态函数所属类的实例。

这是一个例子

class A {
  static getInstance() {
    return new A();
  }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,一切let a = A.getInstance();顺利。

我想在子类中继承这个功能。

class B extends A {}
let b = B.getInstance(); // This will return an instance of A.
Run Code Online (Sandbox Code Playgroud)

我想B.getInstance()返回 B 的一个实例。

javascript node.js ecmascript-6 es6-class

5
推荐指数
1
解决办法
1208
查看次数

我可以使用async/await等待JavaScript中的多个事件吗?

考虑以下情况:

const waitForEvent = async (api) => {
  api.on('eventOne', () => {
    return 'eventOne';
  })


  api.on('eventTwo', () => {
    return 'eventTwo';
  })


  api.on('eventThree', () => {
    return 'eventThree';
  })

  api.load();
}
Run Code Online (Sandbox Code Playgroud)

我要做的是api在异步函数内的变量上设置事件回调,触发api.load()函数,然后返回先发生的事件,在这种情况下要么eventOne|eventTwo|eventThree

问题是,这种语法很糟糕,这个例子不起作用.我找不到任何方法来实现这个使用async/await并且不得不恢复到这样的承诺:

const waitForEvent = (api) => {
  return new Promise(resolve) => {
    api.on('eventOne', () => {
      resolve('eventOne');
    })


    api.on('eventTwo', () => {
      resolve('eventTwo');
    })


    api.on('eventThree', () => {
      resolve('eventThree');
    })

    api.load();
  }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,这可以使用async/await来完成吗?无论如何,这可以使用新的async/await es7语法来完成?

javascript asynchronous async-await ecmascript-2017

4
推荐指数
1
解决办法
1730
查看次数