这是我尝试过的。
var obj = {sfsf: fsdfs};
connection.query("UPDATE table SET `qty` = `qty` - ? WHERE item_id = ?", [p1, p2], callback.bind(obj))
回调功能:
function callback(f_err, f_rows, f_fields){ //default parameters err, rows, fields
if(!f_err){
console.log(obj); //undefined
// other lines of code
}
}
我怀疑我是以错误的方式做到这一点。在执行查询之后会传递默认参数,例如err, rows, fields
。使用这些参数,我想将一些数据传递给回调函数。还有其他办法吗?
答案 0 :(得分:0)
小引文
bind()方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在调用新函数时提供任何前面提供的给定参数序列。
因此,在你的情况下,回调obj
绑定为this
。因此,您必须将console.log(obj)
更改为console.log(this)
。
您可以在MDN