Promise

  • Promise一但新建(new)便立即執(zhí)行,不能中途取消玉组;如果內(nèi)部不reject外部不捕獲則錯(cuò)誤不會反應(yīng)到外部;無法得知當(dāng)前Promise狀態(tài)丁侄。

  • Promise實(shí)例生成以后惯雳,可以用then方法分別指定Resolved狀態(tài)和Reject狀態(tài)的回調(diào)函數(shù)

promise.then(function(data){},function(err){})
  • promise新建后立即執(zhí)行,而then方法會把callback放倒本輪事件循環(huán)結(jié)束執(zhí)行
let promise = new Promise(function(resolve, reject) {
    console.log('Promise');
    resolve();
});

promise.then(function() {
    console.log('Resolved.');
});

console.log('Hi!');

//Promise
//Hi!
//Resolved.
  • Promise.prototype.then
    返回一個(gè)的promise實(shí)例

  • Promise.prototype.catch
    既可以捕獲異步方法中reject的err鸿摇,同時(shí)then方法指定的回調(diào)函數(shù)石景,如果運(yùn)行中拋出錯(cuò)誤,也會被catch方法捕獲拙吉。也是返回新Promise對象

  • Promise對象的錯(cuò)誤具有冒泡特性潮孽,總會向后傳遞。

  • 跟傳統(tǒng)的try/catch代碼塊不同的是庐镐,如果沒有使用catch方法指定錯(cuò)誤處理的回調(diào)函數(shù)恩商,Promise對象拋出的錯(cuò)誤不會傳遞到外層代碼变逃,即不會有任何反應(yīng)

var someAsyncThing = function () {
    return new Promise(function (resolve, reject) {
        // 下面一行會報(bào)錯(cuò)必逆,因?yàn)閤沒有聲明
        resolve(x + 2);
    });
};

someAsyncThing().then(function () {
    console.log('everything is great');
});
  • 上面代碼中,Promise 指定在下一輪“事件循環(huán)”再拋出錯(cuò)誤揽乱,結(jié)果由于沒有指定使用try...catch語句名眉,就冒泡到最外層,成了未捕獲的錯(cuò)誤凰棉。因?yàn)榇藭r(shí)损拢,Promise的函數(shù)體已經(jīng)運(yùn)行結(jié)束了,所以這個(gè)錯(cuò)誤是在Promise函數(shù)體外拋出的撒犀。
var promise = new Promise(function(resolve, reject) {
  resolve('ok');
  setTimeout(function() { throw new Error('test') }, 0)
});
promise.then(function(value) { console.log(value) });
// ok
// Uncaught Error: test
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末福压,一起剝皮案震驚了整個(gè)濱河市掏秩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌荆姆,老刑警劉巖蒙幻,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胆筒,居然都是意外死亡邮破,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門仆救,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抒和,“玉大人,你說我怎么就攤上這事彤蔽〈菝В” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵铆惑,是天一觀的道長范嘱。 經(jīng)常有香客問我,道長员魏,這世上最難降的妖魔是什么丑蛤? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮撕阎,結(jié)果婚禮上受裹,老公的妹妹穿的比我還像新娘。我一直安慰自己虏束,他們只是感情好棉饶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镇匀,像睡著了一般照藻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汗侵,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天幸缕,我揣著相機(jī)與錄音,去河邊找鬼晰韵。 笑死发乔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雪猪。 我是一名探鬼主播栏尚,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼只恨!你這毒婦竟也來了译仗?” 一聲冷哼從身側(cè)響起抬虽,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纵菌,沒想到半個(gè)月后斥赋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡产艾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年疤剑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闷堡。...
    茶點(diǎn)故事閱讀 39,754評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隘膘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出杠览,到底是詐尸還是另有隱情弯菊,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布踱阿,位于F島的核電站管钳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏软舌。R本人自食惡果不足惜才漆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佛点。 院中可真熱鬧醇滥,春花似錦、人聲如沸超营。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽演闭。三九已至不跟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間米碰,已是汗流浹背窝革。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留见间,地道東北人聊闯。 一個(gè)月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓工猜,卻偏偏與公主長得像米诉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子篷帅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評論 2 354

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

  • 00、前言Promise 是異步編程的一種解決方案惊橱,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強(qiáng)大蚪腐。它由社區(qū)...
    夜幕小草閱讀 2,133評論 0 12
  • Promiese 簡單說就是一個(gè)容器,里面保存著某個(gè)未來才會結(jié)束的事件(通常是一個(gè)異步操作)的結(jié)果税朴,語法上說回季,Pr...
    雨飛飛雨閱讀 3,358評論 0 19
  • Promise的含義: ??Promise是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和...
    呼呼哥閱讀 2,170評論 0 16
  • 本文適用的讀者 本文寫給有一定Promise使用經(jīng)驗(yàn)的人正林,如果你還沒有使用過Promise泡一,這篇文章可能不適合你,...
    HZ充電大喵閱讀 7,305評論 6 19
  • 一。關(guān)于買衣服杈绸。 不知道親愛的朋友們帖蔓。今年夏天。你們買了幾件衣服了。反正我已經(jīng)買了兩件日常短袖了泳桦。說好的攢錢理財(cái)然...
    璐格格閱讀 499評論 0 1