JS的Promise兄弟

作者&投稿:贰邰 (若有异议请与网页底部的电邮联系)
~

  相信用过JS的都知道JS是单线程的,同步的函数先执行,异步的函数先加入到一个队列中等同步执行完了再执行异步函数。基于这个JS采用异步回调的方式来处理需要等待的事件,是的代码会继续执行而不用在异步处理的地方一直等待着。同时也带来一个不好的方面,如果我们有很多的回调函数, 也就是说一个回调函数里边再嵌套一个回调一层一层的嵌套,这样就很容易进入传说中的回调地狱。

   注意:异步和回调不是一个东西

  下面感受一下回调地狱代码的魅力:

  是挺有美感的但是阅读性很差,写法也让人感到无力,es6新出的promise对象已经es7的async await都可以解决这个问题,但是今天的主角是Promise。

  Promise是异步编程的一种解决方案,可以替代传统的解决方案--回调函数和事件。ES6统一了用法,并原生提供了Promise对象。作为对象,Promise有一下两个特点:(1)对象的状态不受外界影响;(2)一旦状态改变了就不会在变,也就是说任何时候Promise都只有一种状态。Promise有三种状态,分别是:Pending(进行中),Resolved(完成),Rejected (失败)。Promise从Pending状态开始,如果成功就转到成功态,并执行resolve回调函数;如果失败就转到失败状态并执行reject回调函数。

  Promise一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise 对象的状态改变,只有两种可能:从 Pending 变为 Resolved 和从 Pending 变为 Rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果。就算改变已经发生了,你再对 Promise 对象添加回调函数,也会立即得到这个结果。这与事件(Event)完全不同,事件的特点是,如果你错过了它,再去监听,是得不到结果的。

  Promise构造函数接收一个函数作为参数,该函数的两个参数是resolve,reject,它们由JavaScript引擎提供。其中resolve函数的作用是当Promise对象转移到成功,调用resolve并将操作结果作为其参数传递出去;reject函数的作用是单Promise对象的状态变为失败时,将操作报出的错误作为其参数传递出去

  介绍一下Promise的api怎么使用:

   1、Promise.resolve()的作用将现有对象转为Promise对象resolved;Promise.resolve('test')==new Promise(resolve=>resolve('test'))

  2、Promise.reject()返回一个Promise对象,状态为rejected

  3、Promise.prototype.then()方法接受两个参数,第一个是成功的resolved的回调,另一个是失败rejected的回调,第二个失败的回调参数可选。并且then方法里也可以返回promise对象,这样就可以链式调用了。

   4、Promise.prototype.catch()发生错误的回调函数。

   5、Promise.all() // 所有的事都有完成,相当于 且,适合用于所有的结果都完成了才去执行then()成功的操作。

   6、Promise.race() // 完成一个任务即可,相当于 或。(这个经常用在一些图片比较多的网站)




promise什么意思 解析promise的含义和用法?
"Promise" 还可以表示很可能会发生的事情,即表示征兆或预兆。例如:The dark clouds promise rain.(乌云预示着要下雨了。)在口语中,"promise" 还可以表示"很可能会"或"肯定会"的意思。例如:It looks like it's going to rain, I promise.(看上去快要下雨了,我肯定。)She promised to be...

promise英文怎么发音
读音:英 [ˈprɒmɪs] 美 [ˈprɑːmɪs]中文意思是 n. 许诺,允诺;希望 vt. 允诺,许诺;给人以…的指望或希望 vi. 许诺;有指望,有前途 固定搭配:promise n 答应 ; 允诺 ; 前途 ; 承诺 promise yourself 承诺自己 great promise 大有前途 ; 前程...

promise的名词和动词
promise本身又可以做名词,又可以做动词 promise 英[ˈprɒmɪs] 美[ˈprɑ:mɪs]vt. 允诺,许诺; 给人以…的指望或希望;vi. 许诺; 有指望,有前途;n. 许诺; 希望,指望; 允诺的东西;[例句]The post office has promised to resume first class ...

promise的用法和搭配
‘Promise not to tell anyone!’ ‘I promise.’“你要保证不告诉别人!”“我保证。”2、promise to do sth,意为答应做某事。例句:It's a promise to do something better in the coming year.这是允诺要在来年把一些事情作得更好。We promise ...

promise的短语
1、promise to do 承诺做某事 2、promise to pay 付款承诺 3、solemn promise 庄严承诺 4、promise well 很有希望 5、show great promise 大有前途 6、break a promise 违反诺言 7、keep a promise 遵守诺言 8、promise oneself 指望 9、keep promise 守信 10、show promise 有成功的希望 11、...

promise的用法
promise to do承诺做…promise sb sth= promise sth to sb许诺给某人某物 He promised to help us. 他答应要帮助我们。He promised me the book. 他答应给我这本书。It promises to be fine tomorrow. 明天有希望是个好天气。n. 承诺;make a promise 许下诺言 keep one's promise 保守诺言...

promise是什么意思
1、名词解释:n. 许诺;希望,指望 2、动词解释v.许诺,给人以?的指望或希望,使很可能,预示 3、动词过去式:promised。4、动词第三人称单数: promises。5、例句:Whenshewasyoung,sheshowedgreat promise asatennisplayer.——她从小就展现出优秀网球运动员的资质。\/iknow-pic.cdn.bcebos.com\/023b5...

Promise 这个单词的解释?
promise KK: []DJ: []n.1. 承诺,诺言[C][(+of)][+(that)][+to-v]Give me your promise that you'll never be late again.答应我你绝不再迟到了。2. 希望,前途[U][S]The young man shows promise as a poet.这位青年有成为诗人的希望。vt.1. 允诺,答应[+to-v][+that][O1][...

promise用法。最好有例句。不要太高深的,达到初中生要求即可。_百度知 ...
break one's promise 打破诺言,说话不算数 promise sb. to do sth. 答应某人做某事 n.1. 承诺,诺言[C][(+of)][+(that)][+to-v]Give me your promise that you'll never be late again.答应我你绝不再迟到了。2. 希望,前途[U][S]The young man shows promise as a poet.这位...

SWEAR 与PROMISE区别!
区别:一、含义不同。1、swear英 [sweə(r)] 美 [swer]v.发誓,咒骂 n.咒骂,发誓,宣誓 例句:It's wrong to swear and shout.破口大骂是不对的。2、promise英 [ˈprɒmɪs] 美 [ˈprɑ:mɪs]vt.允诺,许诺,给人以?的指望或希望 vi.许诺,...

永定区15797081958: 最近有没有好听的歌? -
巨丹苦参: 【van】近期更新:---------------------------------------------------------------------------------- 歌名 歌手 感想---------------------------------------------------------------------------------- 你是你的 弦子 [在我为你付出一切之后 才发现你不是我的]【最新单曲】 猜不透 丁当 [忽冷忽...

永定区15797081958: 南非世界杯主题曲(中文) -
巨丹苦参: Waving Flag When I get older, I will be stronger 当我长大以后,我会变得更强 They'll call me freedom, just like a Waving Flag 我会获得自由,就像飘扬的旗帜 And then it goes back, and then it goes back 然后它回到过去,然后它回到过去 Born ...

永定区15797081958: 请问这部电影叫什么片名如题,这部电影的片名叫什么?
巨丹苦参: 《野兽国》(Where the Wild Things Are) 片名: 野兽家园 英文片名: Where the ... 欧美 国家: 美国 片长: 分钟 发行公司: 华纳兄弟娱乐公司 出品年份: 2009 上映日...

永定区15797081958: 张杰的歌,歌名是否可以连成一句情话/
巨丹苦参: 尽管《流言有一千分贝》,《为了遇见你》我们到过《最近的地方》,《我和你》唱... 只为张小杰袖手《天下》————《This I Promise You》. 《那年夏天》,《我和你...

永定区15797081958: web前端面试怎么介绍 -
巨丹苦参: 你的笔试题, 根据其做延伸. 你的简历, 技术栈、工作外学习情况、项目经验. 第一页很重要, 最好都能掌握, 有亮点更好. 面试官额外的延展的知识点, 随机问,看你运气和积累(一般会提及到 ES6、解决实际问题的方法、数据结构与算法都...

永定区15797081958: 最近有什么好听点的歌? -
巨丹苦参: 你好,我给你介绍一些比较好听的歌曲: 【热门新歌】 1. 兰亭序2. 魔杰座3. 天亮了 4. 小酒窝5. 好人卡6. 稻香7. 摇滚怎么了 8. 乔克叔叔9. 童年的时光机10. 窗外11. 沿海公路的出口12. 故事13. 校花14. 安静了15. 右手边16. 画心17...

永定区15797081958: 没怎么听过的纯音乐 -
巨丹苦参: 天地-蔡志忠与庄子的音乐随想 久石让:Summer(个人喜欢:千与千寻的原声) 喜多郎:丝绸之路 恩雅:may it be(其实还有很多) S.E.N.S.:Remembering Me 雅尼:Santorini 班得瑞:your smile(实在难以取舍) 神秘园:追梦人 莎拉布莱曼...

永定区15797081958: 帮我找一首超好听的歌啊````` -
巨丹苦参:目前我最喜欢的一首 《放生》-范逸臣 以下本人收集的好听的歌曲,希望喜欢 外国的: I want it that way MY love SHow me As long as you love me Every bod...

永定区15797081958: 谁知道最近有什么歌好听的啊??? -
巨丹苦参: JAY的千里之外和夜的第7章

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网