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'));
};