Promise 的了解

109 阅读2分钟

Promise 对象用于表示一个异步操作的最终完成(或失败)及其结构值

Promise 的好处是什么?

  • 逻辑更清晰(成功或失败会关联后续的处理函数)
  • 了解 axios 函数内部运作的机制

Promise 使用步骤?

  1. new Promise 对象执行异步任务。
  2. 用 resolve 关联 then 的回调函数传递成功结果。
  3. 用 reject 关联 catch 的回调函数传递失败结果。

Promise 对象是如何关联的处理函数,以及代码的执行顺序的?

即每个 Promise 对象必定处于以下三种状态之一 ,一旦确定不可修改

  1. 待定(pending):初始状态,既没有被兑现,也没有被拒绝

  2. 已兑现(fulfilled):操作成功完成 (指向 .then(回调函数) )

  3. 已拒绝(rejected):操作失败 (指向 .catch(回调函数) )

状态的英文字符串,可以理解为 Prom

Promise.all 静态方法:合并多个 Promise 对象,等待所有同时成功完成(或某一个失败),做后续逻辑

 // 1. 创建Promise对象
    const p = new Promise((resolve, reject) => {
      // 2. 执行异步代码
      setTimeout(() => {
        // resolve('模拟AJAX请求-成功结果')
        reject(new Error('模拟AJAX请求-失败结果'))
      }, 2000)
    })
    console.log(p)

    // 3. 获取结果
    p.then(result => {
      console.log(result)
    }).catch(error => {
      console.log(error)
    })

总结: Promise 是 JavaScript 中用于处理异步操作的一种机制。它可以让你在异步操作完成后得到一个结果或者错误,并且可以链式调用多个异步操作。

如果要使用 Promise,你需要创建一个新的 Promise 对象,提供一个异步操作的函数作为参数。这个函数需要接受两个参数:resolve 和 reject。在异步操作完成后,调用其中之一,resolve 函数表示异步操作成功,传递一个结果给它;而 reject 函数则表示异步操作失败,传递一个错误给它。