new Promise(resolve => setTimeout(resolve, 5000))
2023-12-26 17:28:51
这种写法的目的是创建一个 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。
文章来源:https://blog.csdn.net/pig_ning/article/details/135226639
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!