初识Promise (一)promise基础

2022-10-31 12:19:16

theme: mk-cute

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

promise 基础知识

promise 理解
  • promise 是javascript中异步编程的新的解决方案
  • promise 是一个构造函数
  • promise 对象用来封装一个异步操作并获取结果
promise 状态
  • pending 等待状态
  • resolved 成功状态
  • rejected 失败状态

    promise 状态转换

    mermaid graph TD pending --> resolved pending --> rejected

    • 状态转换只有这两种
    • 一个promise对象只能改变一次状态
    • 成功后结果数据为value 失败后结果为reason
promise 基本流程

image.png

  • new Promise() 新建一个promise
  • 成功执行resolved()
  • 失败执行rejected()
  • resolved和rejected回调都可以使用.then
  • catch只能用于rejected回调时
  • promise返回的是一个promise对象
promise的基本使用

``js // 1. 新建一个promise // 2. promise 接收一个回调函数 这个函数被称为执行器函数 里面执行异步任务 // 3. 回调函数接收两个参数 resolved rejected 两个参数都为函数类型 // 4. 异步操作执行成功了 执行resolved(value) 失败了执行rejected(reason) const p = new Promise((resolved, rejected)=>{ setTimeout(()=>{ // 模拟异步任务 如果当前时间为偶数就成功 否则就失败 const time = Date.now() time % 2 == 0 ? resolved(执行成功 ${time}) : rejected(执行失败 ${time}`) },1000) })

p.then(
        // 接收成功的value数据 onResoled
        value => {
            console.log(`onResoled ${value}`)
        },
        // 接收失败的reason数据 onRejected
        reason => {
            console.log(`onRejected ${reason}`)
        }
    )

```

为什么使用promise
  • 指定回调函数的方式更加灵活
    • 纯回调函数必须在启动异步任务前指定
    • promise 可以在启动异步任务后指定
  • 支持链式调用,解决回调地狱问题
    • 回调函数嵌套调用

总结

  • 今日小知识get 欢迎关注专栏 promise持续更新
  • 作者:vike_123
  • 原文链接:https://blog.csdn.net/vike_123/article/details/126053441
    更新时间:2022-10-31 12:19:16