实现sleep的3种方式

方法一:采用Promise

//先输出了 111,延迟 3000ms 后输出 222
function sleep(ms) {
  var temple = new Promise((resolve) => {
    console.log(111)
    setTimeout(resolve, ms)
  })
  return temple
}
sleep(3000).then(function () {
  console.log(222)
})

方法二:采用async await

//延迟 1000ms 输出了 1111
function sleep(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms))
}
async function test() {
  var temple = await sleep(1000)
  console.log(1111)
  return temple
}
test()

方法三:采用Generator函数

//先输出了 111,延迟 3000ms 后输出 2222
function* sleep(ms) {
  yield new Promise(function (resolve, reject) {
    console.log(111)
    setTimeout(resolve, ms)
  })
}
sleep(3000)
  .next()
  .value.then(function () {
    console.log(2222)
  })

版权声明:本文为weixin_44478371原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。