Функция обратного вызова - как узнать содержание аргумента - PullRequest
0 голосов
/ 19 октября 2018

enter image description here

См. Прикрепленное изображение из файла React, index.js.Я получаю данные из API YouTube.Однако я не понимаю, как код понимает, что такое «данные», так как это никогда не определялось ранее в моем коде.

Это что-то со структурой, которая всегда помещает данные поиска, в то, что у меня есть в качестве аргумента, в следующую функцию?

Код работает, «данные» содержат данные, полученные из поиска API.Я просто не понимаю, как поисковый контент автоматически попадает в «данные» (или как я назову аргумент).

Может кто-нибудь объяснить это - спасибо!

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

последняя функция здесь - это функция обратного вызова для YTSearch.YTSearch - это библиотека для добавления видео на YouTube.Все, что вам нужно сделать, это вызвать YTSearch (), поиск принимает аргумент в форме объекта, включая ваш ключ API и поисковый запрос.Функция обратного вызова будет использоваться для возврата результатов, а в приведенном ниже случае ее можно использовать для установки состояния.Таким образом, в основном функция обратного вызова вызывается методом YTSearch и передает результаты через него.Данные - это просто параметр, и вы можете назвать его как угодно.

Простой пример здесь:

function callback (data) {
  console.log(data);
}

function YTSearch(obj,callback) {
  //calculates data internally based on obj - API key and searchString
  //finally passes it through the callback function
  callback(data);
}

YTSearch({key:'API_KEY',term:'surfboards'},callback);
0 голосов
/ 19 октября 2018

Представьте, что ниже приведен метод YTSearch, который вы вызываете (упрощенно).Второй аргумент callback принимает функцию, которая вызывается в конце YTSearch.

Ответ fromDatabase передается в качестве первого аргумента этой функции callback.

Когда вы вызываете YTSearch и передаете свою собственную функцию в качестве второго аргумента, вы получаете данные в своем первом аргументе (который вы можете назвать data, response или как угодно).

function YTSearch(options, callback) {
     // query database for some data based on "options"
     const fromDatabase = {name: 'Tom', age: 29};
     callback(fromDatabase);
}

YTSearch({name: 'tom'}, function(data) {
    console.log(data);
    // {name: 'Tom', age: 29}
});
0 голосов
/ 19 октября 2018

YTSearch - это, вероятно, библиотечный код, который отправляет запрос на удаленный сервер, анализирует ответ JSON и передает его в обратный вызов с data в качестве первого аргумента.Если вам интересно, вы можете добавить оператор debugger перед вызовом YTSearch и войти в функцию, чтобы посмотреть, что она делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...