Javascript 在foreach循环中跳过getJSON函数
您好,我有以下代码:Javascript 在foreach循环中跳过getJSON函数,javascript,jquery,json,asynchronous,Javascript,Jquery,Json,Asynchronous,您好,我有以下代码: listItems.forEach( item => { $.getJSON('https://www.googleapis.com/youtube/v3/videos?part=statistics&id=KS_Vw5DMlEI&key=AIzaSyAlUj6YMmrt-0s34dQ-LdywneUzZhmsVYA', function(data) {
listItems.forEach( item => {
$.getJSON('https://www.googleapis.com/youtube/v3/videos?part=statistics&id=KS_Vw5DMlEI&key=AIzaSyAlUj6YMmrt-0s34dQ-LdywneUzZhmsVYA', function(data) {
const viewsin = data.items[0].statistics.viewCount;
localStorage.setItem('ViewsCounter3', viewsin );
alert('inside: ' + viewsin);
});
alert('outside: ' + localStorage.getItem('ViewsCounter3'));
});
我的问题是:在我的foreach循环中,不是每次都先执行getJSON函数之外的代码,然后执行函数中的代码。警报的顺序如下所示:
"outside: View Count", "inside: View Count", "outside: View Count", etc...
我希望先执行内部警报,然后在完成后执行外部警报。我已经尝试了wait,但它不起作用,因为我认为它是一个异步函数
在getJSOn函数中执行代码后,是否有办法保持代码运行
有人能帮我解决我的问题吗。我很乐意回答:)
forEach
循环不适用于定义异步步骤。使用wait
for(let item of listItems){
await $.getJSON('https://www.googleapis.com/youtube/v3/videos?part=statistics&id=KS_Vw5DMlEI&key=AIzaSyAlUj6YMmrt-0s34dQ-LdywneUzZhmsVYA')
.done(data=>{
const viewsin = data.items[0].statistics.viewCount;
localStorage.setItem('ViewsCounter3', viewsin );
alert('inside: ' + viewsin);
});
alert('outside: ' + localStorage.getItem('ViewsCounter3'));
};