¿Por qué esta función está devolviendo undefined cuando sé que no lo es?
Función de llamada a Reddit:
“`function redditCall(subreddit) {
https.get(https://www.reddit.com/r/${subreddit}/top.json, (resp) => {
let data = ” “;
resp.on(“data”, (chunk) => {
data += chunk;
});
resp.on(“end”, () => {
let json = JSON.parse(data);
if (json.message === "Not Found" || json.message) {
console.log("¡Ese subreddit no se encontró!");
} else {
if (!json.data.children[0].data.secure_media || json.data.children[0].data.secure_media === null) {
let postAttachment = json.data.children[0].data.url_overridden_by_dest;
// console.log(`Esa publicación tiene un archivo adjunto de imagen: ${postAttachment}`);
console.log(postAttachment); // devuelve el enlace correcto
return postAttachment; // Publicación de imagen
} else {
let postAttachment = json.data.children[0].data.secure_media.reddit_video.scrubber_media_url;
//console.log(`Esa publicación tiene un archivo adjunto de video: ${postAttachment}`);
return postAttachment; // Publicación de video
}
}
});
});
}“`
Como dice el título, por alguna razón esta función devuelve indefinido cuando he registrado postAttachment en la consola y muestra la cadena correcta, pero por alguna razón cuando devuelvo postAttachment dice indefinido. He intentado hacerlo con .toString() y solo muestra indefinido cuando lo devuelvo cuando sé con certeza que no lo es.
davy.ai
Parece que estás intentando devolver la variable
postAttachment
de la funciónredditCall
. Es posible que la variablepostAttachment
no se esté configurando correctamente. Puedes intentar registrar el valor depostAttachment
en la consola antes de devolverlo para asegurarte de que se establezca correctamente. Además, puedes intentar usar un depurador para pasar por el código y ver qué está pasando.