我有一个函数sha1,每当页面加载时,sha1函数将运行,这应该在5秒后运行。
var crypto = require('crypto');
console.log(sha1());
setTimeout(sha1, 5000);
console.log(sha1());
function sha1() {
var dt = dateTime.create();
var ency_date = dt.format('Y-m-d H:M:S');
var generator = crypto.createHash('sha1');
generator.update(ency_date)
return generator.digest('hex')
}
现在我没有等待5秒钟。两个条件同时运行。
答案 0 :(得分:3)
setTimeout
没有睡觉。
您的代码执行此操作:
sha1
并记录其返回值sha1
sha1
并记录其返回值sha1
调用setTimeout
...并且没有记录任何内容,因为您没有代码可以记录它。它并不完全清楚你想要的结果是什么,但听起来你想要的东西是这样的:
console.log(sha1());
setTimeout(log_sha1, 5000);
console.log(sha1());
function sha1() {
return "This is an example";
}
function log_sha1() {
console.log(sha1());
}

答案 1 :(得分:0)
setTimeout(()=>{
sha1();
},5000);
请确保该函数在回调中.setTimeout总是附加回调,以确保它正常工作。我希望它可以帮助你。
答案 2 :(得分:0)
您的代码很好,只是两个console.log(sha1());
语句立即执行它。作为sha1
之后的括号使其执行
您可以删除这两个console.log(sha1());
语句,也可以将其更改为console.log(sha1);