手写count 函数和sleep 睡眠函数

count 函数

每次调用一个函数自动加 1promise

count() 1
count() 2
count() 3
var count = (function () {
  var a = 0
  return function () {
    console.log(++a)
  }
})()

count() // 1
count() // 2
count() // 3

sleep 睡眠函数

好比 sleep(1000)表明等待 1000msasync

方法一:ES5 方式实现
function sleep(callback, time) {
  if (typeof callback == 'function') {
    setTimeout(callback, time)
  }
}
function output() {
  console.log(111)
}
sleep(output, 2000)
方法二:使用 promise 方式
const sleep = (time) => {
  return new Promise((resolve) => {
    setTimeout(resolve, time)
  })
}
sleep(2000).then(() => {
  console.log(111)
})
方法三:利用 async
function sleep(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms)
  })
}

async function init() {
  var temp = await sleep(2000)
  console.log(111) //2s后执行
}

init()
相关文章
相关标签/搜索