JavaScript异步编程promise介绍

Promise 是 JavaScript 中用于异步编程的一个重要概念。它是一个代表了未来将要发生的事件的对象,用来处理异步操作。Promise 对象有三种状态:

  1. Pending(进行中):初始状态,既不是成功,也不是失败。
  2. Fulfilled(已成功):意味着操作成功完成。
  3. Rejected(已失败):意味着操作失败。

Promise 对象代表一个尚未完成但预期将会完成的异步操作,它使得可以对异步操作的结果做出承诺(Promise)。以下是关于 Promise 的关键点:

  • 创建 Promise:Promise 对象是由 Promise 构造函数创建,需要传递一个执行器函数作为参数,该函数接收两个函数作为参数,通常称为 resolve(解决)和 reject(拒绝)。这两个函数分别在异步操作成功或失败时被调用。
let promise = new Promise((resolve, reject) => {
  // 异步操作
  if (/* 操作成功 */) {
    resolve(value); // 操作成功时调用,value为成功的返回值
  } else {
    reject(reason); // 操作失败时调用,reason为错误或拒绝的原因
  }
});
  • 使用 Promise:你可以使用 .then(), .catch().finally() 方法来处理 Promise 对象。.then() 接收两个函数作为参数,第一个函数是在 Promise 成功时调用,第二个是在 Promise 失败时调用。.catch() 专门用来捕捉失败情况,.finally() 无论成功或失败都会执行。
promise
  .then(
    value => { /* 处理成功的结果 */ },
    reason => { /* 处理失败的原因 */ }
  )
  .catch(
    reason => { /* 仅处理失败的原因 */ }
  )
  .finally(() => {
    // 无论成功或失败都会执行的操作
  });
  • 链式调用:Promise的 .then() 方法会返回一个新的 Promise,允许我们进行链式调用。

  • 错误处理:在链式调用中,如果前一个 Promise 被拒绝,链中后续的 .then() 不会执行,直到遇到下一个 .catch()

  • 静态方法:Promise 提供几个有用的静态方法,如 Promise.all()Promise.race()Promise.resolve()Promise.reject(),用于处理多个 Promise 或特定情况。

Promise 是实现异步编程的一种手段,它不仅能够简化异步代码,避免层层嵌套的回调(callback hell),还能够提供统一的错误处理机制。随着现代JavaScript的发展,async/await 语法也提供了基于 Promise 的更加简洁和直观的异步代码编写方式。

promise与async/await的区别可以查看 这篇文章

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值