var Data;
fetch('url')
.then(data => data.json())
.then(success => Data = success);
while(typeof Data === 'undefined'){
console.log("data not retrived")
}
上面的代码让我陷入了一个永远的循环,我不明白为什么,有人能解释一下吗?
这是因为javascript的异步、非阻塞行为。由于它不知道从服务器获得响应需要多长时间,所以它不会等待,而是会执行程序的下一个while循环部分。这就是为什么"Data"变量的值将保持"未定义"并导致无限循环的原因。