为什么脚本逐行工作,但不能整体工作?

Vie*_*wed 0 javascript jquery json get

如果我全部通过Chrome控制台运行此脚本,则会收到错误消息

Uncaught TypeError:无法读取未定义的属性“播放列表”

var owner = "yamusic-trending"
var kind = "1000"
var url = `https://music.yandex.ru/handlers/playlist.jsx?owner=${owner}&kinds=${kind}&light=false`

json = $.getJSON(url)
var tracks = json.responseJSON["playlist"]['tracks']
Run Code Online (Sandbox Code Playgroud)

如果逐行

json = $.getJSON(url)
Run Code Online (Sandbox Code Playgroud)

然后

var tracks = json.responseJSON["playlist"]['tracks']
Run Code Online (Sandbox Code Playgroud)

错误不是。为什么?

Lia*_*gev 5

与$.getJSONasync一样function,您必须在完成后对其进行处理,这是使用回调的示例:

$.getJSON(url, json => {
  var tracks = json.responseJSON["playlist"]['tracks']
  // do something with tracks here...
})
Run Code Online (Sandbox Code Playgroud)

$.getJSON 在这里阅读更多信息,并在这里阅读更多关于异步javascript工作原理的信息。