ES6 Promise17 Mar 2025 | 5 分钟阅读 Promise 代表最终会被兑现的承诺。 Promise 可以根据操作结果被拒绝或解决。 ES6 Promise 是在 JavaScript 中进行异步编程的最简单方法。 异步编程包括从主线程单独运行进程,并在完成后通知主线程。 在 Promise 之前,使用回调来执行异步编程。 回调回调是一种在另一个函数执行完成后处理函数执行的方法。 回调有助于处理事件。 在回调中,可以将函数作为参数传递给另一个函数。 为什么需要 Promise?在处理最小异步操作等基本情况时,回调是一种很好的方法。 但是,当您开发具有大量代码的 Web 应用程序时,使用回调会很混乱。 这种过度的回调嵌套通常被称为回调地狱。 为了处理这种情况,我们必须使用 Promise 而不是 回调。 Promise 如何工作?Promise 表示异步操作的完成。 它根据操作被拒绝或解决返回单个值。 Promise 主要有三个阶段,如下所示 ![]() Pending(等待)- 这是每个 Promise 的初始状态。 它表示结果尚未计算出来。 Fulfilled(已完成)- 这意味着操作已完成。 Rejected(已拒绝)- 它表示计算期间发生的故障。 一旦 Promise 被完成或拒绝,它将是不可变的。 Promise() 构造函数接受两个参数,即 rejected 函数和 resolve 函数。 根据异步操作,它返回第一个参数或第二个参数。 创建一个 Promise在 JavaScript 中,我们可以使用 Promise() 构造函数创建一个 Promise。 语法 示例 输出 It is then block. The message is: Success Promise 方法Promise 方法用于处理 Promise 对象的拒绝或解决。 让我们了解一下 Promise 方法的简要说明。 .then()当 Promise 被完成或拒绝时,将调用此方法。 可以链接此方法以处理 Promise 的拒绝或完成。 它接受两个函数参数,分别用于 resolved 和 rejected。 当 Promise 被完成时,将调用第一个参数,而当 Promise 被拒绝时,将调用第二个参数(可选)。 让我们通过以下示例了解如何使用 .then() 方法处理 Promise 拒绝和解决。 示例 输出 Success! it worked! Failure! it failed! .catch()这是处理故障和拒绝的好方法。 它仅接受一个函数参数来处理错误。 让我们通过以下示例了解如何使用 .catch() 方法处理 Promise 拒绝和失败。 示例 输出 Error oh no, it failed! .resolve()它返回一个新的 Promise 对象,该对象已使用给定值解决。 如果该值具有 .then() 方法,则返回的 Promise 将遵循该 .then() 方法并采用其最终状态; 否则,返回的 Promise 将使用该值完成。 .reject()它返回一个被拒绝的 Promise 对象,并带有给定的值。 示例 输出 Error: fail .all()它接受 Promise 数组作为参数。 此方法返回一个 resolved Promise,该 Promise 在作为可迭代对象传递的所有 Promise 都已完成时完成。 示例 输出 [ 'Hello', 'World', 1000 ] .race()此方法用于根据解析的第一个引用的 Promise 返回一个 resolved Promise。 示例 输出 Promise 1 is first ES6 Promise 链Promise 链允许我们控制 JavaScript 异步操作的流程。 通过使用 Promise 链,我们可以使用 Promise 的返回值作为另一个异步操作的输入。 ![]() 有时,希望将 Promise 链接在一起。 例如,假设我们需要执行几个异步操作。 当一个操作为我们提供数据时,我们将开始对该数据进行另一个操作,依此类推。 当有多个相互依赖的异步函数时,Promise 链很有用,并且这些函数中的每一个都应一个接一个地运行。 让我们尝试通过以下示例来理解 Promise 链的概念 示例 在浏览器中执行以上代码,然后使用 ctrl+shift+I 打开终端。 成功执行上述代码后,我们将获得以下输出。 输出 ![]() 下一个主题ES6 验证 |
我们请求您订阅我们的新闻通讯以获取最新更新。