没有结果我的javascript数组为什么

there is no result my javascript array WHY?

本文关键字:数组 为什么 javascript 我的 结果      更新时间:2023-09-26

我推数据数组,我可以在数组中看到它,但在函数之外,数组中没有数据,为什么?

函数keyWordsearch() {

        var musicIDs = [];
        gapi.client.setApiKey('AIzaSyB2O-w22OSJVSKPhAYsK_zxX7FsThM0mhE');
        gapi.client.load('youtube', 'v3', function () {
            idlist = '';

            var q = $('#querySerach').val();
            $("#result").empty();
            var request = gapi.client.youtube.search.list({
                q: q,
                part: 'snippet',
                maxResults: 3,
            });
            request.execute(function (response) {
                for (var i = 0; i < response.items.length; i++) {
                    var musicid2 = response.items[i].id.videoId;
                    musicIDs.push(musicid2);
                   // i push data array i can see it in array but  out of function there is no data in array why ?? ------
                    var pID = '#myPlayerID';
                    var ratio = '4/3';
                }
            });
        });
        alert(musicIDs[1]); // here is musicID[1] return undefined

}

Ajax调用是异步的,所以您必须在调用api的响应函数中执行alert。在本例中,在request.execute(function (response) {

request.execute(function (response) {
            for (var i = 0; i < response.items.length; i++) {
                var musicid2 = response.items[i].id.videoId;
                musicIDs.push(musicid2);
                var pID = '#myPlayerID';
                var ratio = '4/3';
            }
            alert(musicIDs[1]);
}

更多信息在这里