我目前正在尝试从函数中获取JSON对象。 我可以访问函数中的所有数据,但我很难将数据输出,所以我实际上可以使用数据。
var imdb = require('imdb');
imdb('tt4477536', function(err, data) {
if(err)
console.log(err.stack);
if(data)
console.log(data)
});
这很好用,我得到数据:
{ title: 'Fifty Shades Freed',
year: '2018',
contentRating: 'R',
runtime: '1h 45min',
description: 'Anastasia and Christian get married, but Jack Hyde
continues to threaten their relationship.',
rating: '4.4',
poster: 'https://images-na.ssl-images-amazon.com/images/M/MV5BODI2ZmM5MzMtOWZiMC00ZGE3LTk3MWEtY2U0ZjE3ZWJlNDEzXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_UX182_CR0,0,182,268_AL_.jpg',
genre: [ 'Drama', ' Romance', ' Thriller' ],
director: 'James Foley',
metascore: '31',
writer: 'Niall Leonard' }
所以现在我的问题是如何从这个函数中获取数据,所以我实际上可以在代码中的其他地方使用数据?比如我是否需要字符串中的标题?
提前感谢你。
托马斯
答案 0 :(得分:0)
你可以在它之外声明一个变量:
var imdb = require('imdb');
var imdbData = {};
imdb('tt4477536', function(err, data) {
if(err)
console.log(err.stack);
if(data) {
imdbData = data;
console.log(data);
}
});
但请注意,由于这是一个异步函数,因此在使用tha数据时应该使用回调或Promise是安全的。为了更好的方法:
var imdb = require('imdb');
imdb('tt4477536', function(err, data) {
if(err)
console.log(err.stack);
if(data) {
doNext(data);
}
});
function doNext(data) {
//use the data
}