关于Promise的个人认知

Promise 

什么是Promise 

ES6 异步编程的一种解决方案,比传统的方案(回调函数和事件)更加的合理和强大

 好处 异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数

promise可以解决异步的问题,本身不能说promise是异步的

为什么会有promise

同步:主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务;

异步:不进入主线程,而进入任务队列的任务,只有任务队列通知主线程,某个异步任务可以执行了,该任务才会进入主线程;

最常用的异步操作就是将回调函数作为异步回调的参数来使用,而promise是通过then来做的;

new promise 的时候就会被立即执行,因而为了实现用的时候调用所以将promise写在函数里面;

Promise的作用

1,主要是用来解决回调嵌套(执行完后再去执行某一些操作,这时候容易形成嵌套再嵌套的问题)的问题,也就是常见的"回调地狱";

 2,执行多并发请求获取数据;

Promise的使用

1,创建 Promise 实例,var p = new Promise();

2,实例创建以后可以用 .then 方法来指定 resolved状态 和 reject状态 的回调函数;

3,用常见的两种异常机制来捕获异常;

Promise的基本语法

语法总结:

1、promise 的参数是一个回调函数,回调函数中有两个 参数人别是resolve, reject resolve 用来返回异步请求成功的结果 reject 用来返回异步请求失败的结果

2、promise 的对象将异步请求结果保存后,需要使用第一个 .then来获取结果resolve函数返回的结果  .catch 获取reject 返回的结果。当然,我们也可以在 第一个.then中的第二个 回调函数获得 reject 返回的结果(上述问题可以查看代码~ 我写注释了)

3、promise 还可意识用 第二个.then是第一个.then的回调函数,这里可以继续处理其他逻辑(个人感觉有些 马后炮的意思,所以不经常使用,出现的概率也比较低)

Promise常用的方法:

实例方法

promise.then():获取异步任务的正常结果。

promise.catch():获取异步任务的异常结果。

promise.finaly():异步任务无论成功与否,都会执行。

对象方法

promise.all (): 并发处理多个异步任务,所有任务都执行成功,才能得到结果,并控制他们返回的【结果的顺序】

注意:promise.all中的 任何一个请求失败,将不会有返回结果。

promise.race (): 并发处理多个异步任务,只要有一个任务执行成功,就能得到结果

promise 结合 await async 封装接口api


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,302评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,563评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,433评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,628评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,467评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,354评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,777评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,419评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,725评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,768评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,543评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,387评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,794评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,032评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,305评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,741评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,946评论 2 336

推荐阅读更多精彩内容

  • ES6数组的扩展 1,扩展运算符 ...将一个数组转为用逗号分隔的参数序列 该运算符主要用于函数调用 2,替代函数...
    小王子__阅读 222评论 0 0
  • 内存泄漏注意项 一.内存泄漏概念 1.什么是内存泄漏? 用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果...
    程序农猿阅读 295评论 0 1
  • 金三银四 2021年前端面试笔记 又到了找工作的黄金时间,3-4月份,跳槽是每个人的职业生涯中都要经历的过程,笔者...
    LonJin_up阅读 963评论 0 3
  • 单线程 JavaScript是一门单线程的语言,被广泛应用于浏览器和页面DOM元素交互,自从Node.js出现后,...
    JunChow520阅读 796评论 0 3
  • 0 HTML5相关 websocket WebSocket 使用ws或wss协议,Websocket是一个持久化的...
    可爱多小姐阅读 843评论 0 0