将ES7异步回调绑定到父作用域上下文的最简洁的方法是什么?
What is the most concise way to bind an ES7 async callback to its parent scope context
我想用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')
}
}
那么在我的约束条件下,什么是最好的方法?
错过了显而易见的-我以为我之前读过一些东西,认为不可能在async中使用匿名函数。
app.on('live-app:start', async () => { this })
相关文章:
- 在 JavaScript 数组中的所有元素之间穿插元素的简洁方法
- 使用异步模块的Express + Mongoose请求处理程序的更简洁的方法
- 有没有更简洁的方法可以从带有 lodash 的数组中删除条目
- 用javascript在一个对象的两个键上声明两个数组的简洁方法是什么
- Javascript - 用 Javascript 编写 HTML 代码的更简洁的方法(取代 jQuery)
- 有没有一种更简洁的方法可以使用 Angular 指令实现页面位置感知
- 接受选项对象作为参数的简洁方法,回退到省略属性的默认值
- 转换节点.js流的简洁方法
- 编辑KendoGrid模板的更简洁的方法
- 处理 Array.prototype.slice.call(参数)的更简洁方法
- 在Javascript中,有没有一种简洁的方法可以将方法绑定到对象
- 有没有一种更简洁的方法来设置一个条件语句,以便为变量的任意值集执行
- 将函数绑定到此函数的更简洁的方法
- 是否有一种更简洁的方法来解析我的HTML数据
- 在Javascript/jQuery中比较多个元素值的简洁方法
- 在列表中隐藏距离超过3步的兄弟姐妹的最简洁的方法是什么?
- 用Express嵌套路由器的正确/简洁的方法
- 有没有更简洁的方法在js中编写一组基于时间的条件?
- 是否有一个好的/简洁的方法来重构嵌入的循环,而不是使用Rx操作符
- 从另一个对象和要保存的键数组生成一个对象的最简洁的方法