promise

1.概念

簡單來講,promise是一個容器,里面存在著某個未來會發(fā)生的事件芜抒,從語法來講,promise是一個對象托启,從它可以獲取異步操作的信息

2.特點:

promise對象的狀態(tài)不受外界的影響宅倒,狀態(tài)有三種,pending屯耸,fullfilled拐迁,rejected,只有異步操作才能改變promise對象的狀態(tài)
promise對象的狀態(tài)一旦改變疗绣,就不會再變线召,任何時候都能得到這個結(jié)果。從pending變?yōu)閒ullfilled或者從pending變?yōu)閞ejected多矮,都成為resolved缓淹。

3.缺點:

無法取消
不設(shè)置回調(diào)函數(shù),promise內(nèi)部拋出的錯誤不會反饋到外部
當(dāng)處于pending狀態(tài)的時候,無法得知處于哪個階段讯壶。

4.promsise原型方法

promise.prototype.then
promise.prototype.catch

5.promise的方法

promise.all([p1,p2,p3]), promise.all方法接受一個數(shù)組作為參數(shù)料仗,
特點:promise的狀態(tài)是由p1,p2,p3共同來決定的,只有p1,p2,p3的狀態(tài)都為fullfilled時鹏溯,或者 p1,p2,p3中有一個狀態(tài)為rejected時罢维,此時第一個被rejected的實例的返回值會傳遞給promise的回調(diào)函數(shù),才會調(diào)用回調(diào)函數(shù)
promise.race([p1,p2,p3])
特點:只要p1,p2,p3中一個狀態(tài)發(fā)生變化丙挽,promise對象的狀態(tài)就會發(fā)生改變
promise.reject() 返回一個新的promise實例肺孵,狀態(tài)為rejected

6.將對象轉(zhuǎn)換為promise對象

promise.resolve()

7.兩個附加方法

done() done方法處于回調(diào)鏈的尾端,保證拋出任何可能出現(xiàn)的錯誤颜阐; done方法可以提供fullfilled和rejected狀態(tài)作為回調(diào)函數(shù)平窘,也可以不提供任何參數(shù)
finally() finally方法用于指定不管promise對象最后的狀態(tài)是什么都會執(zhí)行的操作。
它與done的最大區(qū)別是凳怨,它的參數(shù)是一個普通的回調(diào)函數(shù)瑰艘,該函數(shù)不管怎么樣都要執(zhí)行。

8.當(dāng)不想?yún)^(qū)分函數(shù)f是同步還是異步肤舞,都想用then方法指定下一步流程紫新,用catch方法來拋出錯誤

方法:
利用async()函數(shù) eg: (async() =>f())()
使用new Promise() eg: (()=>{new Promise(resolve => resolve(f()))})()
使用promise.try() eg: promise.try(f) promise.try 模擬了try代碼塊

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市李剖,隨后出現(xiàn)的幾起案子芒率,更是在濱河造成了極大的恐慌,老刑警劉巖篙顺,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偶芍,死亡現(xiàn)場離奇詭異,居然都是意外死亡德玫,警方通過查閱死者的電腦和手機(jī)匪蟀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宰僧,“玉大人材彪,你說我怎么就攤上這事∏俣” “怎么了段化?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凤类。 經(jīng)常有香客問我,道長普气,這世上最難降的妖魔是什么谜疤? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上夷磕,老公的妹妹穿的比我還像新娘履肃。我一直安慰自己,他們只是感情好坐桩,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布尺棋。 她就那樣靜靜地躺著,像睡著了一般绵跷。 火紅的嫁衣襯著肌膚如雪膘螟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天碾局,我揣著相機(jī)與錄音荆残,去河邊找鬼。 笑死净当,一個胖子當(dāng)著我的面吹牛内斯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播像啼,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼俘闯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了忽冻?” 一聲冷哼從身側(cè)響起真朗,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎甚颂,沒想到半個月后蜜猾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡振诬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年蹭睡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赶么。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡肩豁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辫呻,到底是詐尸還是另有隱情清钥,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布放闺,位于F島的核電站祟昭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏怖侦。R本人自食惡果不足惜篡悟,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一谜叹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搬葬,春花似錦荷腊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至抡锈,卻和暖如春疾忍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背企孩。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工锭碳, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人勿璃。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓擒抛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親补疑。 傳聞我的和親對象是個殘疾皇子歧沪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Promise 對象 Promise 的含義 Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函...
    neromous閱讀 8,707評論 1 56
  • 一莲组、Promise的含義 Promise在JavaScript語言中早有實現(xiàn)诊胞,ES6將其寫進(jìn)了語言標(biāo)準(zhǔn),統(tǒng)一了用法...
    Alex灌湯貓閱讀 826評論 0 2
  • 摘自:阮一峰 http://es6.ruanyifeng.com/#docs/promise 一锹杈、首先撵孤,我們要弄明...
    泡杯感冒靈閱讀 801評論 0 4
  • Prepending(進(jìn)行時),Resolve(成功了)竭望,Reject(失敗了)邪码,then......等 1.Pr...
    _菩提本無樹_閱讀 49,061評論 0 21
  • Promise對象是一種解決異步問題的方法嗽上,還有的解決方案是asyns 和 await (es7) 這么是目前的終...
    站在大神的肩膀上看世界閱讀 1,265評論 0 6