我有两个函数,在这两个连续的函数调用之间需要强制延迟。也就是说,
a // call func a
delay(100) // delay for 100 ms
b // call func b
反正有这样做吗?
编辑:尝试过
a();
console.log("a");
setTimeout(b(), 1000);
console.log("b");
答案 0 :(得分:3)
使用新的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();
答案 1 :(得分:2)
您需要做的就是在呼叫b
之后利用setTimeout function
来呼叫a
a() // call func a
setTimeout(b, 100) // delay for 100 ms
如果需要将b
函数绑定到当前作用域,请使用:
setTimeout(() => b(), 100) // () => {} functions are always bound to the current scope
答案 2 :(得分:-1)
尝试一下:
a() // First call function a
然后在 setTimeout 函数中调用函数b。
es5 :
setTimeout(function() {b()},100);
es6 :
setTimeout(()=> {b()},100);