我有两个函数,在这两个连续的函数调用之间需要强制延迟。也就是说,
a // call func a
delay(100) // delay for 100 ms
b // call func b
有没有办法这样做?
编辑:尝试
a();
console.log("a");
setTimeout(b(), 1000);
console.log("b");
有了新的ES6,你甚至可以让它更干净,看起来像是连续的
function delay(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
})
}
async function doItHere() {
console.log('a', Date.now());
await delay(5000);
console.log('b', Date.now())
}
doItHere();
您只需要在调用a
后使用setTimeout function
来调用b
a() // call func a
setTimeout(b, 100) // delay for 100 ms
如果需要将b
函数绑定到当前作用域,请使用:
setTimeout(() => b(), 100) // () => {} functions are always bound to the current scope
试试这个:
a() // First call function a
然后调用setTimeout函数中的函数b。
es5:
setTimeout(function() {b()},100);
es6:
setTimeout(()=> {b()},100);