Обратный вызов Javascript возвращает неопределенное значение с данными

#javascript #callback

Вопрос:

я понимаю, что обратные вызовы получают возвращаемые данные как неопределенные.

 function goodMorning(name, msg) {
  return `${name} ${msg}`;
}

function greet(name, msg, cb) {
  const myName = "Sairam";
  console.log(`${cb(name)} ${cb(msg)} i am ${myName}`);
}

greet("Suvarna", "Good Morning", goodMorning); 

В приведенном выше коде я передавал функцию goodMorning в качестве обратного вызова в методе приветствия, в то время как консольное ведение журнала возвращало данные с неопределенными.

Пожалуйста, нажмите здесь, чтобы просмотреть сообщение консоли

Комментарии:

1. Ваш обратный вызов имеет 2 параметра, и вы вызываете его только с одним, поэтому ${msg} (в доброе утро) не определен

Ответ №1:

cb (goodMorning) это функция, которая получает два аргумента, но вы передаете только один, вы должны сделать:

 ${cb(name, msg)}
 

В настоящее время вы вызываете cb только с одним аргументом вместо двух, поэтому второй получает undefined

Комментарии:

1. Спасибо за ваш ответ, Ариэль, в консоли функций приветствия я дважды передал его имя и msg.

2. вам нужно вызвать функцию с двумя аргументами вместо того, чтобы вызывать ее дважды с 1 параметром каждый раз