Node.JS:类方法作为回调
Node.JS: class method as callback
我在node.js中使用类,但在本例中,this.done是未定义的。关于如何轻松解决这个问题,有什么想法吗?我现在不想回到回调地狱或学习使用承诺。
MyClass.prototype.method1 = function(done) {
this.method1Done = done;
mysql.query([...], this._method1QueryCallback);
}
MyClass.prototype._method1QueryCallback = function(err, rows) {
[...]
this.done(err, rows)
}
在将某个特定的this
上下文用作回调之前,您需要将其bind
添加到方法中,否则调用者将提供自己的this
(这可能不是您所期望的)。
最简单的方法是:
mysql.query([...], this._method1QueryCallback.bind(this))
假设您在调用mysql.query
时知道this
是正确的作用域。
这确实会使以后很难解除回调绑定,如果您正在设置事件处理程序,这可能会成为一个问题。在这种情况下,您可以执行以下操作:
this._method1QueryCallback = this._method1QueryCallback.bind(this);
在构造函数中的某个位置,或者在传递回调之前。
相关文章:
- Google Data API上的OOP Javascript回调方法
- 有没有什么方法可以停止Jquery中的animate(也可以停止完整的回调函数)
- 对中的函数调用进行排序是回调的唯一方法
- google在类内映射javascript directionsService.route请求:将类实例传递给回调函数
- 如何在ajax回调中使用类变量
- Javascript:对回调创建的对象执行方法
- 从类方法中的 ajax post 函数回调函数更改 javascript 类属性
- 将类方法绑定到类外绑定的事件处理程序内的AJAX成功回调
- Node.JS:类方法作为回调
- 调用 ES6 方法时的绑定上下文.如何从称为回调的方法中访问对象
- 我是否需要为每个具有等待结果回调的方法关闭
- 使用原型时是否可以直接将类方法作为回调传递
- 谷歌放置了api回调解决方法
- 链式类方法与回调
- 从回调(异步方法)内部访问对象文字属性
- Mocha JS测试——一种对sinon spy进行回调的方法
- 将带有回调的方法转换为返回带有清理的承诺的方法
- 绑定类方法作为回调到jquery滑块UI组件
- Java-script,谷歌chrome扩展:未定义的类变量,在方法中引用的回调
- 在Google Maps API V3上为Geocoding JSON响应添加回调的方法