您当前的位置: 首页 > 

暂无认证

  • 8粉丝

    0关注

    0博文

    0收益

  • 8浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【ES6】JavaScript—Promise_API(resolve,reject,then,catch等方法)

发布时间:2022-06-22 20:32:10 ,浏览量:81

文章目录
  • 🔻如何使用Promise?
    • 💖API
      • 💗Promise 构造函数
      • 💗Promise.prototype.then 方法
      • 💗Promise.prototype.catch 方法
      • 💗Promise.resolve 方法
      • 💗Promise.reject 方法
      • 💗Promise.all 方法
      • 💗Promise.race 方法

上一篇文章讲了👉🏻关于promise对象的理解和使用 本章节讲述关于一些promise_API的使用

在这里插入图片描述

🔻如何使用Promise? 💖API 💗Promise 构造函数

Promise (excutor) {}

  • executor 函数: 执行器函数 (resolve, reject) => {}
  • resolve 函数: 内部定义成功时我们调用的函数 value => {}
  • reject 函数: 内部定义失败时我们调用的函数 reason => {}

说明: executor 执行器函数会在 Promise 对象创建时立即同步调用,内部封装的异步操作在执行器中执行


    let p = new Promise((resolve, reject) => {
      // executor 会在 Promise 内部立即同步调用
      console.log('111')
    })
    console.log('222')

在控制台会先打印出111,再打印出222,如下图:

在这里插入图片描述

💗Promise.prototype.then 方法

(onResolved, onRejected) => {}

  • onResolved 函数: 成功的回调函数 (value) => {}
  • onRejected 函数: 失败的回调函数 (reason) => {}

说明: 指定用于得到成功 value 的成功回调和用于得到失败 reason 的失败回调

返回一个新的 promise 对象

💗Promise.prototype.catch 方法

(onRejected) => {}

  • onRejected 函数: 失败的回调函数 (reason) => {}

说明: then()的语法糖, 相当于: then(undefined, onRejected)

💗Promise.resolve 方法

(value) => {}

  • value: 成功的数据或 promise 对象

说明: 返回一个成功/失败的 promise 对象


    // 如果传入的参数为 非promise类型的对象(如字符串,数字,布尔值等等),则返回的结果为成功的promise对象
    let p1 = Promise.resolve(520)
    // 如果传入的参数为 promise对象,则参数的结果决定了 resolve 返回的结果
    let p2 = Promise.resolve(new Promise((resolve, reject) => {
      resolve('ok')
      // reject('error')
    }))
    // console.log(p2)
    // 返回成功的promise对象
    // p2.catch(reason => {
    //   console.log(reason)
    // })

💗Promise.reject 方法

(reason) => {}

  • reason: 失败的原因

说明: 返回一个失败的 promise 对象


    let p = Promise.reject(520)
    let p2 = Promise.reject('xuxu')
    let p3 = Promise.reject(new Promise((resolve, reject) => {
      resolve(123)
    }))
    console.log(p)
    console.log(p2)
    console.log(p3)

无论传入的参数是什么,返回的结果都是失败的promise对象,打印结果如下:

在这里插入图片描述

💗Promise.all 方法

(promises) => {}

  • promises: 包含 n 个 promise 的数组

说明: 返回一个新的 promise, 只有所有的 promise 都成功才成功,返回的结果值是一个数组,只要有一个失败了就直接失败,如果有多个失败结果只会返回第一个失败的结果值


    let p1 = new Promise((resolve, reject) => {
      resolve('ok')
    })
    let p2 = new Promise((resolve, reject) => {
      reject('error1')
    })
    let p3 = Promise.reject('err')
    const result = Promise.all([p1, p2, p3])
    console.log(result)

// 返回p2这个失败的结果值
💗Promise.race 方法

(promises) => {}

  • promises: 包含 n 个 promise 的数组

说明: 返回一个新的 promise, 第一个完成的 promise 的结果状态就是最终的结果状态(谁先改变了状态,谁就决定race方法返回的结果)


    let p1 = new Promise((resolve, reject) => {
      resolve('ok')
    })
    let p2 = new Promise((resolve, reject) => {
      resolve('1')
    })
    let p3 = Promise.resolve('2')

    const result = Promise.race([p1, p2, p3])
    console.log(result)

//控制台打印结果: [[Prototype]]: Promise
								[[PromiseState]]: "fulfilled"
							  [[PromiseResult]]: "ok"
//如果在p1回调函数里加一个定时器,则p2先改变状态,返回的就是p2执行完的结果。  

let p1 = new Promise((resolve, reject) => {
      // 1s之后改变状态
      setTimeout(() => {
        resolve('ok')
      }, 1000)
})

//控制台打印结果: [[Prototype]]: Promise
								[[PromiseState]]: "fulfilled"
							  [[PromiseResult]]: "1"

今天的分享就到这里啦 ✨

接下来的一篇文章讲讲👉🏻关于Promise的七大关键问题吧,期待大佬们的来访哦~~ 点赞💖收藏🤞关注🌹

关注
打赏
1652792496
查看更多评论
广告位
立即登录/注册

微信扫码登录

0.4388s