多个提示之间的Javascript- Console.log

时间:2017-06-27 21:14:01

标签: javascript command-prompt console.log

我很确定很多人遇到过这种情况。对于Ex:你有一个简单的JS自选冒险游戏。



    var name = prompt("Name?");
    console.log("Hello" + name);
    var age = prompt("Age?");
    console.log(name + " is " + age + " years old");




会发生什么是显示第一个提示,然后立即显示第二个提示(年龄)。此外,控制台甚至不会打印出“你好”#34; +(姓名),直到你回答两个提示后。无论如何你可以"强制打印"两个提示之间的console.log?

2 个答案:

答案 0 :(得分:0)

问题是UI的更新速度比JavaScript执行速度快,这导致与console.log语句同步的问题。

这是因为JavaScript运行时不负责更新UI,这是浏览器的工作,因此一旦JavaScript要求浏览器更新UI(显示提示),它就会非常快速地执行,因为{{1是一个“阻塞”对话框,所有其他代码都被暂停。

添加短暂延迟可解决问题:

propmt

答案 1 :(得分:0)

您可以使用属于ES6

的发电机功能
function * quiz() {
  var name = prompt("Name?");
  yield console.log("Hello" + name);
  var age = prompt("Age?");
  yield console.log(name + " is " + age + " years old");
}

var myQuiz = quiz();
myQuiz.next();
myQuiz.next();

工作演示:https://jsfiddle.net/6mzbhLhz/ - 在控制台中查看。