This question already has answers here:
Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference
                            
                                (6个答案)
                            
                    
                2年前关闭。
        

    

有我的代码:

   fetch(data)
    .then(blob => blob.json())
    .then(newData => array.push(newData))
let be = array[0].id;


我想访问我的数组数据,但最终以undefined结束,我不知道为什么。
After reloading page
但是,它在控制台中正常工作。Working good with console.log
我已经在互联网上阅读了几个小时,但我似乎无法理解为什么它会那样工作。

最佳答案

fetch异步运行,因此,您可以执行以下操作。

let array = [];
let be = '';

fetch(data)
 .then(blob => blob.json())
 .then(newData => {
    array.push(newData);
    be = array[0].id;
 });


调用fetch方法后,在等待服务器或您尝试获取信息的任何位置的响应时,I / O不会停止,而是在等待服务器的响应时开始执行其余代码。

09-20 20:36