在其他任何事情之前提示加载

prompt loads before anything else

嘿,如果有人明白为什么提示甚至在控制台打印之前就出现了
感谢您的帮助

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>promptheadache</title>
</head>

<body>
    <script>
    
        console.log('i should appear first on the console')

        var promptInput = prompt('I\'m am here befor anything else')

    </script>
</body>

</html>

console.log实际上是异步的,因为它们是同步的(总是按顺序)但是执行异步调用。

prompt 是一个非常古老的 API 并且是为数不多的实际阻塞页面的页面之一 - 所以 even-though 它出现在 console.log 之后,您会尽快看到它正如其名。

也就是说 - 这并非对每个控制台都是正确的,也不能保证 - console.log 可能 出现在 prompt 之前,具体取决于 browser/console实施。

如果你想在提示之前获得控制台,你可以添加 setTimeOut-setTimeout() 是一个异步函数。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>promptheadache</title>
</head>

<body>
    <script>
    
        console.log('i should appear first on the console')
  setTimeout(() => {var promptInput = prompt('I\'m am here befor anything else')
},5000) 
 
       

    </script>
</body>

</html>