nodejs, связывающий объект в функции обратного вызова

1

Вот что я пробовал.

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. с этими параметрами я хочу передать некоторые данные функции обратного вызова. Есть ли другой способ сделать это?

Теги:
callback

1 ответ

0
Лучший ответ

Маленькая цитата

Метод bind() создает новую функцию, которая при вызове имеет это ключевое слово, установленное на предоставленное значение, с заданной последовательностью аргументов, предшествующей любому, предоставленному при вызове новой функции.

Итак, в вашем случае в callback obj bind как this. Поэтому вы должны изменить console.log(obj) на console.log(this). Вы можете найти больше информации в MDN

Ещё вопросы

Сообщество Overcoder
Наверх
Меню