Как функция узнает, что что-то является обратным вызовом;что-то, что должно быть выполнено после завершения определенного ввода-вывода. Откуда он знает, что он не должен выполняться сразу? Определено ли оно в функции (стандартизированным) образом?
Насколько я знаю, ключевое слово callback, которое часто используется в аргументе, является обычной практикой, но не позволяет функции автоматически интерпретироватьаргумент как нечто, которое должно начинаться после завершения определенного ввода-вывода.
Используя приведенный ниже пример, у меня есть два вопроса (взяты из https://medium.com/codebuddies/getting-to-know-asynchronous-javascript-callbacks-promises-and-async-await-17e0673281ee):
const request = require(‘request’);
function handleResponse(error, response, body){
if(error){
// Handle error.
}
else {
// Successful, do something with the result.
}
}
request('https://www.somepage.com', handleResponse);
Как выглядит структура функции 'require', чтобы она знала, что аргумент 2 (в данном случае handleResponse) должен быть выполнен после завершения запроса? Я полагаю, это сводится к тому же вопросу, который я задавал выше.
Могут ли функции быть асинхронными даже без ключевого слова async в функции? Если да, как браузер узнает, что это асинхронная функция?