问题描述
我想使用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。 我可以使用诺言,但我希望等待的简单性。
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')
}
}
那么,鉴于我的限制,最好的方法是什么?
1楼
vaughan
1
2015-07-26 14:26:11
遗漏了显而易见的东西-我以为我早些时候读过一些东西,无法将aunc函数与async一起使用。
app.on('live-app:start', async () => { this })