在reactjs中的两个函数之间添加延迟

时间:2018-07-26 18:37:55

标签: javascript reactjs

我有两个函数,在这两个连续的函数调用之间需要强制延迟。也就是说,

a // call func a
delay(100) // delay for 100 ms
b // call func b

反正有这样做吗?

编辑:尝试过

  a();
  console.log("a");
  setTimeout(b(), 1000);
  console.log("b");

3 个答案:

答案 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);