-1

我试图通过一些嵌套的自调用函数在父函数级别为变量赋值。我是 javascript 编码的新手,在从嵌套函数中获取变量的值时遇到了一些麻烦。值是异步加载的吗?或者还有其他解决方法吗?

function searchA(keyword_string) {

                var video_id = '';
                var q = keyword_string;
                var request = gapi.client.youtube.search.list({
                        q: q, 
                        part: 'snippet',
                        maxResults: '1',
                        type: 'video',
                        order: 'relevance',
                        videoEmbeddable: 'true'
                });
                request.execute(function(response) {
                        var str = JSON.stringify(response.result);
                        var json = response.result;
                        video_id = json.items[0].id.videoId;
                        console.log(video_id); //THIS GIVES THE CORRECT ID
                });
                console.log(video_id); //THIS RETURNS AN EMPTY STRING 
        }
4

1 回答 1

0

是的,该值正在异步加载。

不知道Google API的具体情况,但是request.execute方法的第一个参数一定是回调函数,只有在响应到达时才会执行。

这样,最后一个在之前console.log(video_id)执行。 video_id = json.items[0].id.videoId

于 2017-06-29T00:53:22.940 回答