与JSON调用不兼容的异步错误(javascript)

时间:2014-01-20 02:30:59

标签: javascript json api asynchronous

我真的不知道我在这里做错了什么。我无法使用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调用。我知道它有效并且它返回正确的数据。

1 个答案:

答案 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;
                      }
});