手寫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()
相關文章
相關標籤/搜索