setTimeout(function() {
console.log('www.dmaku.com');
},1000);
使用异步/等待
function delay(time) {
return new Promise(resolve = >setTimeout(resolve, time));
}
run();
async function run() {
await delay(1000);
console.log('This printed after about 1 second');
}
使用 Sleep 的命令
const {execSync} = require('child_process');
execSync('sleep 1');
这是不同的使用delay(time)能从以前的例子是因为delay(time)仍然无阻塞。 例如可以运行多delay()呼吁并行使用Promise.all()
async function run() {
const start = Date.now();
await Promise.all([delay(1000), delay(1000)]);
console.log('Elapsed:', Date.now() - start);
}
function delay(time) {
return new Promise(resolve => setTimeout(resolve, time));
}
run();
然而与 execSync 你不能运行多 execSync('sleep 1') 在平行的。execSync() 阻止 整个 过程中的节点,这意味着没有其他代码可以执行。小心使用 execSync()
const {execSync} = require('child_process');
const start = Date.now();
execSync('sleep 1');
execSync('sleep 1');