如何解决返回https的Node JS函数获取请求最终编辑的数据
大家好,我的 Node JS 函数有问题,我希望它返回 https 获取请求最终编辑的数据,我知道这个异步问题有很多解决方案,但我都尝试了,但仍然无法弄清楚我的代码有什么问题? 这是我的功能,无需任何其他解决方案编辑:
function getMovie(apiKey,gen) {
const baseUrl = "https://api.themoviedb.org/3/discover/movie?api_key=" + apiKey + "&language=en-US&include_adult=false&include_video=false&page=1&with_genres=" + gen;
https.get(baseUrl,function (responce) {
console.log(responce.statusCode);
var d = "";
responce.on("data",function (data) {
d += data;
});
responce.on("end",() => {
const finalData = [];
const moviesData = JSON.parse(d);
const result = moviesData.results;
const maxx = result.length;
const rand = Math.floor(Math.random() * maxx);
const title = result[rand].title;
const rDate = result[rand].release_date;
const overview = result[rand].overview;
const imageRoot = result[rand].poster_path;
const movieId = result[rand].id;
const movierating = result[rand].Vote_average;
// here will push those variables to finalData array
// then return it
return finalData;
});
}).on('error',(e) => {
console.error(e);
});
}
并希望在此 finalData 返回后:
const finalResult = getMovie(apiKey,genre);
它总是返回未定义,我该如何解决这个问题?请任何人帮我解决这个问题 提前致谢。
解决方法
我使用以下代码使用 Promise 解决了这个问题:
const rp = require('request-promise');
function getMovie(url) {
// returns a promise
return rp(url).then(body => {
// make the count be the resolved value of the promise
let responseJSON = JSON.parse(body);
return responseJSON.results.count;
});
}
getMovie(someURL).then(result => {
// use the result in here
console.log(`Got result = ${result}`);
}).catch(err => {
console.log('Got error from getMovie ',err);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。