如果我通过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']





如果逐行

json = $.getJSON(url)


接着

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


错误不是。为什么?

最佳答案

$.getJSON是异步调用,您需要等待直到完成。如果任何操作取决于此调用返回的结果,则应在回调函数中进行处理。

见下面的代码

ES5

    $.getJSON(url, function(data){
       var tracks = data.responseJSON["playlist"]['tracks']
    });


ES6

$.getJSON(url, json => {
  var tracks = json.responseJSON["playlist"]['tracks']
});


getJSON API Documentation

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

10-11 23:43