Переменная область действия функции обратного вызова

#node.js #callback

#node.js #обратный вызов

Вопрос:

Я пытаюсь использовать функцию обратного вызова в узле js, поэтому я передаю переменную и функцию обратного вызова следующим образом:

 if(true){
await this.serialNumber(customer, async serial => {
console.log(serial); // it's log 43435543
});

// I need to use that serial out of the scope of that function by passing it to this new function
await this.storeinDB(customer, serial);
}

// this is the function where pass variable to callback function
async serialNumber(customer, callback){
const serial = "43435543";
callback(serial);
}
  

Есть ли способ сделать это?

Ответ №1:

Вызовите другую функцию внутри обратного вызова, например. Поскольку вы не работаете с Promise использованием async/await , это не имеет значения.

 if(true){
  this.serialNumber(customer, function (serial) {
    console.log(serial); // it's log 43435543
    this.storeinDB(customer, serial);
  });
}

// this is the function where pass variable to callback function
serialNumber(customer, callback){
  const serial = "43435543";
  callback(serial);
}