我真的不知道我在这里做错了什么。我无法使用JSON调用中提取的poster-path重新分配变量poster_path。现在让我感到惊讶的是,我已经尝试过 async to false 。它没有用。
我搜索了多个现有答案,例如这个(How do I return the response from an asynchronous call?),但没有找到任何解决方案。
function getPoster(id) {
var poster_path = null;
$.getJSON( "https://api.moviedb.org"+id+"?", {async: false}, function( data ) {
poster_path = data.poster_path;
}
}
PS:此示例有意缩短API调用。我知道它有效并且它返回正确的数据。
答案 0 :(得分:1)
$.getJSON
函数是$.ajax
方法的简写版本。因为它是速记版本,所以它会做出某些假设,其中之一是呼叫将是异步。
如果您希望通过同步调用(不推荐),那么您需要类似
的内容$.ajax({
'async' : true,
'dataType' : 'json',
'contentType' : 'application/json',
'url' : 'https://api.moviedb.org'+id+'?',
'success' : function (data){
poster_path = data.poster_path;
}
});