首页 > 解决方案 > 为什么脚本是逐行运行,但不能作为一个整体运行?

问题描述

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

未捕获的类型错误:无法读取未定义的属性“播放列表”

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']

按 if 逐行

json = $.getJSON(url)

接着

var tracks = json.responseJSON["playlist"]['tracks']

错误不是。为什么?

标签: javascriptjqueryjsonget

解决方案


$.getJSONasync一样function,您必须在完成后处理它,这是一个使用回调的示例:

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

$.getJSON 在此处阅读更多信息,并在此处阅读有关异步 javascript 工作原理的更多信息


推荐阅读