我想使用 ES7 异步回调编写这样的代码。
class Foo {
bar(app) {
// const that = this
app.on('something', async function() {
await this.baz() // `this` is `app`. I want it to be the instance of Foo (`that`)
}
}
async baz() {
console.log('baz')
}
}
在 ES6 中我们可以使用匿名函数,但我不能在里面使用 await。我可以使用 Promise,但我想要 await 的简单性。
app.on('something', () => {
this.baz()
})
我们可以为回调使用单独的方法。但这很冗长。
class Foo {
bar(app) {
app.on('something', this.onSomething)
}
async onSomething() {
await this.baz() // `this` is `app`. I want it to be the instance of Foo (`that`)
}
async baz() {
console.log('baz')
}
}
那么考虑到我的限制,最好的方法是什么?