💡 异步编程是 JavaScript 中的一个重要概念,它允许开发人员在不阻塞主执行线程的情况下处理耗时的任务。该领域最重要的进步之一是 JavaScript Promises 的引入。
为什么要引入 Promise?
当您有多个相互依赖的异步操作时,就会发生嵌套回调(通常称为“回调地狱”)。这种回调嵌套很快就会变得混乱且难以管理。Promise 使您能够更优雅地链接多个异步操作,从而消除回调地狱。
什么是承诺?
Promise 是表示异步操作最终完成(或失败)、返回值或错误的 JavaScript 对象。它们提供了一种干净且有组织的方式来管理复杂的异步代码,使其更易于推理和维护。
承诺阶段:
Pending:创建 Promise 时的初始状态。它表示异步操作正在进行中,并且 Promise 尚未履行或拒绝。
Fulfilled:当异步操作成功时,Promise 进入此状态。这意味着 Promise 应该返回的值是可用的,并且可以使用 then() 方法访问。
Rejected:如果异步操作遇到错误或失败,则 Promise 进入拒绝状态。拒绝原因(通常是错误对象)可以使用 catch() 方法或另一个带有错误处理回调的 then() 方法来访问。
创建承诺:
在 JavaScript 中创建 Promise 涉及使用 Promise 构造函数,该构造函数将函数作为其参数。该函数也称为“执行器”,包含您要执行的异步操作。执行器函数接收两个参数:resolve 和reject。您在执行程序内调用这些函数来指示承诺的结果 - 无论是履行还是拒绝。
处理承诺:
处理 Promise 涉及使用 then() 和 catch() 方法