如何在javascript函数中返回值之前添加延迟

如何在javascript函数中返回值之前添加延迟,javascript,timeout,delay,Javascript,Timeout,Delay,在Javascript函数中返回值之前,我需要添加2秒的延迟 function slowFunction(num) { console.log("Calling slow function"); // 2 seconds delay here return num * 2; } 有几种方法可以做到这一点 我更喜欢用承诺 function sleep(delay: number): Promise<void>{ return new Pro

在Javascript函数中返回值之前,我需要添加2秒的延迟

function slowFunction(num) {
  console.log("Calling slow function");
 
  // 2 seconds delay here

  return num * 2;
}

有几种方法可以做到这一点

我更喜欢用承诺

function sleep(delay: number): Promise<void>{
   return new Promise( (res) => {
        setTimeout(()=>res(),delay)
   })
}

async function slowFunction(num) {
  console.log("Calling slow function");
  await sleep(2000)
  // 2 seconds delay here

  return num * 2;
}
功能睡眠(延迟:数字):承诺{
返回新承诺((res)=>{
设置超时(()=>res(),延迟)
})
}
异步函数慢函数(num){
log(“调用慢函数”);
等待睡眠(2000年)
//这里延迟2秒
返回数*2;
}


您的哪些用例需要这种延迟?你试过什么了?为什么slowFunction也会返回一个promise?这是因为我在函数上添加了异步。您应该检查承诺是如何工作的,以及异步等待是如何工作的。