nodejs绑定回调函数中的对象

时间:2018-02-14 06:53:23

标签: javascript node.js callback

这是我尝试过的。

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。使用这些参数,我想将一些数据传递给回调函数。还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

小引文

  

bind()方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在调用新函数时提供任何前面提供的给定参数序列。

因此,在你的情况下,回调obj绑定为this。因此,您必须将console.log(obj)更改为console.log(this)。 您可以在MDN

找到更多信息