new Promise(resolve => setTimeout(resolve, 5000))


这种写法的目的是创建一个 Promise 对象,该对象在一定延迟后自动解决(resolve),

这样就可以在 await 关键字后面创建一个暂停的效果,直到 Promise 被解决,

这种技巧通常用于实现异步操作的等待,例如在重试逻辑中等待一段时间后再次尝试,


  async function delayExecution() {
   
    console.log('Start')
    await new Promise(resolve => setTimeout(resolve, 5000)) // 等待5秒
    console.log('After 5 second')
  }

  delayExecution()




在JS中,Promise构造函数,接受一个带有两个参数的函数Fn作为参数,这个函数Fn本身接受两个参数:resolve 和 reject,

new Promise(resolve => setTimeout(resolve, 5000)) 中,只有一个参数resolve,这是因为使用了箭头函数的简写形式,

实际上,箭头函数的简写形式等同于以下代码:


new Promise((resolve, reject) => {
   
  setTimeout(resolve, delay)
})

在这种简写形式中,如果没有显式地调用reject那么 Promise 就会默认使用 resolve

因此,即使只有一个参数,在这种情况下也会正常工作,

setTimeout在延迟结束后会自动调用resolve,从而履行(fulfill)这个 Promise。

相关推荐

  1. new Promise(resolve => setTimeout(resolve, 5000))

    2023-12-26 17:54:02       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 17:54:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 17:54:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 17:54:02       87 阅读
  4. Python语言-面向对象

    2023-12-26 17:54:02       96 阅读

热门阅读

  1. kafka发送大消息

    2023-12-26 17:54:02       63 阅读
  2. 自定义删除无依赖文件的webpack插件

    2023-12-26 17:54:02       57 阅读
  3. js 学习

    2023-12-26 17:54:02       47 阅读
  4. ebpf基础篇(一) -------- hello ebpf

    2023-12-26 17:54:02       57 阅读
  5. 服务器的出口IP地址查询

    2023-12-26 17:54:02       49 阅读
  6. LeetCode 75| 前缀和

    2023-12-26 17:54:02       57 阅读
  7. MFC或QT中,自绘控件的目的和实现步骤

    2023-12-26 17:54:02       48 阅读