# delay

# Description

延迟 wait 毫秒后调用 func。 调用时,任何附加的参数会传给 func。

# Params

(func, wait, ...args)

# Return

number

# Code

function delay(func, wait, ...args) {
  if (typeof func !== 'function') {
    throw new TypeError('Expected a function')
  }
  return setTimeout(func, +wait || 0, ...args)
}

# Analyze

defer 基本一致,只不过这里延迟时间改为传入,调用一元正号转为数字

# Remark

  1. window.setTimeout MDN (opens new window) 方法设置一个定时器,该定时器在定时器到期后执行一个函数或指定的一段代码。
  2. 并发模型与事件循环 MDN (opens new window)
  3. 彻底吃透 JavaScript 执行机制 (opens new window)
  4. Event loops (opens new window)

# Example

delay(() => {console.log('delay')}, 2)
defer(() => {console.log('defer')})

// defer
// delay