我想使用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中我们可以使用anon funcs,但我不能在内部使用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')
}
}
那么考虑到我的约束,最好的方法是什么?
答案 0 :(得分:1)
错过了显而易见的事情 - 我以为我之前已经读过一些事情,因为无法使用带有异步的匿名函数。
app.on('live-app:start', async () => { this })