javascript - 为什么脚本可以一行一行地运行,但不能作为一个整体运行?

标签 javascript jquery json get

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

Uncaught TypeError: Cannot read property 'playlist' of undefined

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

错误不是。为什么?

最佳答案

由于 $.getJSON 是一个异步函数,因此您必须在完成后对其进行处理,以下是使用回调的示例:

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

了解有关 $.getJSON 的更多信息 here ,并阅读有关异步 javascript 如何工作的更多信息 here

关于javascript - 为什么脚本可以一行一行地运行,但不能作为一个整体运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58994421/

相关文章:

javascript - 转换后的 JSON 数组的数量

javascript - 缩放浏览器上的 CSS 问题 - 元素在缩放时从 View 中消失

javascript - 为什么我在获取图片 url 后无法在 html 中插入图片

javascript - 函数中参数传入出错

android - php Json 得到一个空白的 TextView

iphone - 查找当前位置和指定位置之间的道路距离

json - 如何在 Clojure 中获取以字符串形式存储在数据库中的日期?

javascript - onClick 过滤数组并渲染数组中的剩余项目

javascript - 允许退格的javascript中的正则表达式

jquery - 如何用JQuery实现FLXHR进行跨域交互