【问题标题】:how to add delay before returning a value in javascript function [duplicate]如何在javascript函数中返回值之前添加延迟[重复]
【发布时间】:2021-06-05 21:30:18
【问题描述】:

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

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

  return num * 2;
}

【问题讨论】:

  • 您有什么用例需要这种延迟?你试过什么?

标签: javascript timeout delay


【解决方案1】:

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

我更喜欢使用承诺。

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;
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

【讨论】:

  • 为什么 slowFunction 也返回一个承诺
  • 那是因为我在函数上添加了异步。你应该检查一下 Promise 是如何工作的,以及 async await 是如何工作的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
相关资源
最近更新 更多