我试图通过一些嵌套的自调用函数为父函数级别的变量赋值。我是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
}
答案 0 :(得分:0)
是的,该值正在异步加载。
我不知道Google API的具体内容,但request.execute
方法的第一个参数必须是回调函数,只有在响应到达时才执行
这样,最后console.log(video_id)
在 video_id = json.items[0].id.videoId
之前执行。