我无法解释此代码片段的功能。请给任何人示范。提前感谢。。。。由于新的Date从一开始就在减,所以它似乎在减,结果是0,它小于500……那么while循环将如何工作
let start = new Date().getTime(); while(new Date().getTime() - start < 5000);
代码片段意味着在5秒钟后继续运行下一个命令。new Date((.getTime((返回当前时间的毫秒数,并且while
语句在从开始时间起经过5秒后将始终为true。
let start = new Date().getTime();
while(new Date().getTime() - start < 5000);
// After 5 seconds, next commands will be executed.
...
说明
使用当前日期和时间创建新的日期对象:
const startDate = new Date();
获取自1970/01/01:以来的毫秒数
const startTime = startDate.getTime();
因此,new Date().getTime()
返回如下内容:1605598723149。
在while循环中,我们得到当前的毫秒数。我们减去直到开始的毫秒数(startTime
(。
let timeDifference = new Date().getTime() - startTime;
因此timeDifference
包含从开始到现在已经过去的毫秒数。
while循环一直运行,直到timeDifference大于5000毫秒(=5秒(。
while(new Date().getTime() - start < 5000);
(我们不能使用变量,因为日期对象是静态的,声明后不会改变。所以时间保持不变。(
代码
我用const
替换了let
,因为start
时间不变。
我用Date.now()
代替了new Date().getTime()
,因为它更短、更快、更有意义。
const start = Date.now();
while(Date.now() - start < 5000);
setTimeout
如果希望代码暂停x毫秒,可以使用setTimeout()
方法。
setTimeout(function(){ alert("Hello"); }, 5000);
你可以在这里阅读。