首页 > 其他分享 >通俗讲解promise

通俗讲解promise

时间:2024-04-09 10:34:56浏览次数:22  
标签:异步 回调 承诺 咖啡 朋友 Promise 讲解 promise 通俗

   

JavaScript 中的 Promise 是一种特殊的对象,它用于解决异步编程中的复杂性问题,特别是回调的问题。我们可以把它比喻成现实生活中的一个“承诺”:

想象一下,你正在等待朋友帮你做一件事情(比如买一杯咖啡),但你不确定他们何时能完成。这时,你可以向朋友要一个“承诺”,即一个保证:

  1. 承诺代表未来的结果:当你获得朋友的一个承诺时,你并不会立刻拿到咖啡,但你知道咖啡一定会在未来某个时刻准备好。同样,在 JavaScript 中,Promise 就是一个代表未来将会完成(或者失败)的异步操作结果的对象。

  2. 三种状态:Promise 有三种状态:

    • Pending(进行中):就像你刚要求朋友去买咖啡,此时任务还未完成。
    • Resolved(已完成/已兑现):朋友成功买到咖啡并交给你,这时 Promise 成功且携带咖啡(即异步操作的结果)。
    • Rejected(已拒绝/已失败):朋友告诉你咖啡店关门了,买不到咖啡,这时 Promise 失败并给出失败原因(即异步操作的错误信息)。
  3. 链式调用:Promise 提供了 .then 和 .catch 方法,用来注册当承诺兑现或拒绝时的回调函数。例如,你可以说:“当我得到咖啡时(resolved),告诉我一声,如果买不到(rejected),也要告诉我原因。” 在代码中,这体现为 .then 用于处理成功的回调,.catch 或 .then 的第二个参数用于处理错误的回调。(成功和失败都要给一个回调)

  4. 不可逆性:一旦 Promise 变成 Resolved 或 Rejected,这个状态就会永久不变,即使之后添加更多的回调函数,它们也能立即得知之前已经确定的状态及其结果。

总结来说,Promise 是一种管理异步行为的设计模式,它让你能够以更清晰、更有序的方式编写异步代码,避免了层层嵌套的回调函数,使得异步流程控制更加直观和易于维护。

 

标签:异步,回调,承诺,咖啡,朋友,Promise,讲解,promise,通俗
From: https://www.cnblogs.com/zx618/p/18123321

相关文章

  • Promises/A+ 详解及实现
    规范:Promises/A+https://promisesaplus.com/此篇文章将在Node环境通过 Class 语法来实现一个符合Promises/A+规范的 MyPromise ,通过官方872个测试用例文章中x.x.x标记如2.1.1表示规范中对应的规范序号;myPromise 表示 MyPromise 的一个实例对象【2.......
  • 【简单讲解下PHP AES加解密示例】
    ......
  • 【简单讲解下C++max函数的使用】
    ......
  • 用ADZS-218X-EZICE-2.5仿真器调试ADSP-2189和ADSP-2184的详细讲解
    作者的话之前我写过一篇文章,讲ADSP-2189M应该怎么用仿真器来调试,但是比较简单,如下链接:https://blog.csdn.net/ADI_OP/article/details/129926055#comments_32119822这次借着写文档的契机,搞了一篇详细的,手把手教你用(写下来的目的也是为了自己以后看这方便,我怕再往后自己......
  • Java登陆第四十一天——Promise、async关键字、await关键字
    在学习axios之前,需要学习ES6提供的Promise对象。普通函数和回调函数学习Promise的预备知识,回调函数普通函数普通函数:正常调用的函数,普通函数执行完毕后才会继续执行下一行代码。按照编码顺序执行。functionf1(){console.log("普通函数f1执行");}functionf2(......
  • 设计模式之观察者模式讲解
    概念:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。抽象主题:或者叫被观察者,可以持有、增加、删除观察者对象。具体主题:实现抽象主题定义的操作,并定义一个状态,每当状态改变时,通知所有观察者。抽象观察者:为所有观察......
  • CorelDRAW2024全网最详细独家讲解新版本新功能
    各位粉丝大家好,为了让大家更深入的了解CorelDRAW2024新版的各项新功能,我们独家邀请到了Corel中国专家名师张苏老师,策划并录制30分钟全中文讲解栏目!干货满满,全程演示,一览CorelDRAW2024新版的各项新功能!不容错过!干货!Corel专家团讲师张苏老师详细拆解2024新版功能,带你感受2024......
  • 快速了解 ES6 的Promise
    快速了解ES6的Promise海人为记关注IP属地:黑龙江2021.12.0310:13:44字数2,110阅读269 JavaScriptPromise.pngECMAScript6增加了对 Promises/A+ 规范的完善支持,即 Promise 类型。一经推出,Promise 就大受欢迎,成为了主导性的异步编程机制。所有现代浏......
  • 深入理解ES6里的promise
    深入理解ES6里的promise 一、ES6Promise是什么?复杂的概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受。那么第一个问题来了,Promise是什么呢?是一个类?对象?数组?函数?别猜了,直接打印出来看看吧,console.dir(Promise),就这么简单粗暴。这么一看就明白了,Pro......
  • ES6 Promise
    ES6Promise陈丶陈奎宁  promise/ˈprɑːmɪs/承诺;许诺;保证Promise的含义Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件更合理、更强大。ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。我们来模拟传统的解决方案co......