JavaScript 手寫setTimeout


let setTimeout = (sec, num) => {
  // 初始當前時間
  const now = new Date().getTime()
  let flag = true
  let count = 0
  while (flag) {
    count++
    // 再次運行時獲取當前時間
    const after = new Date().getTime()
    // 需要等待的時間
    const dealy = sec * 1000
    // 當前運行時間 - 初始當前時間 >= 等待時間 ===>> 跳出
    if (after - now >= dealy) {
      flag = false
    } else {
      console.info('count', count)
    }
  }
  return new Promise((resolve, reject) => {
    resolve(num * num)
  })
}

let result = ''
const res = setTimeout(3, 10)
console.info(res) // Promise { 100 }
// 返回的是一個promise,promise中resolve中的值需要在then中拿到
res.then(x => {
  result = x
  console.info(result) // 100
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM