🚀 [GIF] Javascript Promise API 方法速查表 - Promise.all、Promise.allSettled、Promise.race、Promise.any 它们是如何组织的?Promise.resolve Promise.reject Promise.all Promise.allSettled Promise.race Promise.any Javascript 动图 🎉

2025-05-24

🚀 [GIF] Javascript Promise API 方法速查表 - Promise.all、Promise.allSettled、Promise.race、Promise.any

这是如何组织的?

Promise.resolve

Promise.reject

Promise.all

Promise.allSettled

Promise.race

Promise.any

GIF 中的 Javascript 🎉

大家好👋!我制作了这个GIF速查表供自己参考,希望它也能对社区有所帮助❤️

指数

这是如何组织的?

这些 GIF 动图就像观看 Promise API 方法运行的慢动作视频。每个 Promise API 的场景都描述了它们的工作原理,重点介绍了 Promise 的状态转换、值/原因以及执行顺序。

颜色代码 承诺状态 这意味着什么
待办的 pending 表示初始状态。Promise 所表示的操作既未完成也未拒绝。
已实现 fulfilled 操作成功,并分配结果。通常,在履行后,值会显示在相应 Promise 的顶部
拒绝 rejected 操作失败,通常有拒绝的原因。它显示在被拒绝的 Promise 顶部

为了简单起见,我在每个 Promise 下方添加了数字,表示它们结算的顺序。这在理解每个 Promise API 的短路行为(用 ⚡️ 表示)时很方便。

Promise.resolve

场景 1:如果给定的值不是thenable而是一个有效的Javascriptvalue
如果给定的值不是原始的 `thenable` endraw,而是 _valid_ Javascript 原始 `value` endraw

场景 2:如果给定值是thenable(即 Promise 或具有then()方法的对象
如果给定值是原始的 `thenable` endraw(即 Promise 或具有原始 `then()` endraw 方法的对象

场景 3嵌套的Promise 类对象
嵌套的 Promise 类对象

Promise.reject

场景:被拒绝reason
用“理由”拒绝

Promise.all

场景 1:所有传入的 Promise 都得到实现
Promise.all - 所有传入的 Promise 都得到实现

场景 2:⚡️ 一个或多个传入的 Promise 被拒绝
⚡️Promise.all - 传入的一个或多个 Promise 被拒绝

场景 3:⚡️ 所有传入的 Promise 都被拒绝
⚡️Promise.all - 所有传入的 Promise 都会被拒绝

场景 4:传递一个空的可迭代对象
Promise.all - 传递一个空的可迭代对象

Promise.allSettled

场景 1:所有传入的 Promise 都得到实现
Promise.allSettled - 所有传入的 Promise 都得到实现

场景 2:传入的一个或多个 Promise 被拒绝
Promise.allSettled - 传入的一个或多个 Promise 被拒绝

场景 3:所有传入的 Promise 都被拒绝
Promise.allSettled - 所有传入的 Promise 均被拒绝

场景 4:传递一个空的可迭代对象
Promise.allSettled - 传递一个空的可迭代对象

Promise.race

场景 1:⚡️ 所有传入的 Promise 都得到实现
⚡️Promise.race - 所有传入的 Promise 都会得到实现

场景 2:⚡️ 一个或多个传入的 Promise 被拒绝
⚡️Promise.race - 传入的一个或多个 Promise 被拒绝

场景 3:⚡️ 所有传入的 Promise 都被拒绝
⚡️Promise.race - 所有传入的 Promise 都会被拒绝

场景 4:传递一个空的可迭代对象
Promise.race - 传递一个空的可迭代对象

Promise.any

⚠️ Warning- Promise.any() 方法处于实验阶段,并非所有浏览器都完全支持。目前处于 TC39 候选阶段(第 3 阶段)。

场景 1:⚡️ 所有传入的 Promise 都得到实现
⚡️ Promise.any - 所有传入的 Promise 都会得到实现

场景 2:⚡️ 一个或多个传入的 Promise 被拒绝
⚡️ Promise.any - 传入的一个或多个 Promise 被拒绝

场景 3:所有传入的 Promise 都被拒绝
Promise.any - 所有传入的 Promise 都会被拒绝

场景 4:传递一个空的可迭代对象
Promise.any - 传递一个空的可迭代对象

嘿,我喜欢和好奇的朋友们保持联系,也喜欢向他们学习!❤️所以,如果你有任何问题或有趣的想法,请随时联系我们🙋‍♀️🙋‍♂️如果你觉得这篇文章有用,别忘了分享🚀


回购链接:

GitHub 徽标 hemchander23 / javascript_in_gifs

以 GIF 形式呈现的 JavaScript 概念和特性。我将其作为参考。如果对您有用,我非常高兴!

GIF 中的 Javascript 🎉

觉得文档难以理解?别担心,GIF 图帮你搞定!

内容

  1. 承诺 API
  2. 空值合并

欢迎随意贡献❤️




文章来源:https://dev.to/hem/gif-cheatsheet-for-javascript-promise-api-methods-promise-all-promise-allsettled-promise-race-promise-any-1l2o
PREV
🔑 GIF 动画中解释的 OAuth 2.0 流程
NEXT
前端开发人员的系统设计指南