Я знаю, что вопрос задают очень часто, и я мог бы получить за это отрицательный голос. Но мне действительно трудно понять, как я могу подождать, пока функция обработает данные, прежде чем вернуть значение.
Я просматривал много популярных сообщений (например, здесь ), но я не могу добиться того, чего хочу.
Вот мой код:
app.post("/video_url", function (req, res) {
videoProcessed = videoScraper(req.body.videoURL.videoURL);
res.send(videoProcessed);
});
Эта функция не ожидает обработки данных:
function videoScraper(url) {
console.log("URL to Scraper: " + url);
const options = {
uri: `${url}`,
transform: function(body) {
return cheerio.load(body);
}
};
var videoProcessed;
rp(options)
.then(($) => {
videoProcessed = $("body").find("iframe").attr("src");
return videoProcessed;
})
.catch((err) => {
console.log(err);
});
}
Я пытался использовать обратные вызовы, но это становится действительно грязным, и я не знаю, как было вставить обещание (если оно есть) в мой код.