码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 手写setTimeout

时间:2020-07-23 01:43:39      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:eal   lang   reject   let   out   时间   运行时   false   code   

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

JavaScript 手写setTimeout

标签:eal   lang   reject   let   out   时间   运行时   false   code   

原文地址:https://www.cnblogs.com/leslie1943/p/13363934.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!