Ключевым моментом здесь является то, что я хочу, чтобы моя функция возвращала значение, которое я получаю асинхронно от другой функции.Вот структура:
const https = require('https');
function getNumPages(substr) {
let totalPages = 0;
console.log(`Before makeRequest ${totalPages}`); //0
makeRequest(substr,(numPages)=>{
console.log(`Inside callback from makeRequest${numPages}`); //79
totalPages = numPages;
});
console.log(`After makeRequest${totalPages}`); //0
return totalPages;
}
Каков наилучший способ получить getNumPages вернуть значение, полученное из makeRequest.Я понимаю асинхронную природу кода и то, что возвращаемое значение выполняется до того, как функция makeRequest вызывает свой обратный вызов.
Я хочу иметь возможность вызывать getNumPages со строкой, скажем, getNumPages ('Shakespeare') иmakeRequest вызовет API, получит количество страниц Шекспира в БД, а затем getNumPages, чтобы вернуть целое число.Я знаю, что внутри функции обратного вызова makeRequest у меня есть правильное количество страниц, но я говорю, что не хочу там работать, я просто хочу вернуть его из getNumPages.