我對(duì)Promise警告信息的理解a promise was created in a handler but was not returned from it

BUG內(nèi)容如下:
a promise was created in a handler but was not returned from it
代碼:

//異步請(qǐng)求1
function runAsync1() {
         var p = new Promise(function (resolve, reject) {
         //做一些異步操作
         setTimeout(function () {
         console.log('異步任務(wù)1執(zhí)行完成');
         resolve('隨便什么數(shù)據(jù)1');
         }, 1000);
         });
         return p;
         }

//異步請(qǐng)求2
   function runAsync2() {
         var p = new Promise(function (resolve, reject) {
         //做一些異步操作
         setTimeout(function () {
         console.log('異步任務(wù)2執(zhí)行完成');
         resolve('隨便什么數(shù)據(jù)2');
         }, 5000);
         });
         return p;
         }

     var promise =  runAsync1()
                       .then(function(data){
                           console.log(data);
                                   runAsync2(); 
                                  return null;//1、解決成功,這個(gè)辦法不是很好
                       }).catch(function(e){
                           console.log(e);
                       });
    辦法3:
    promise.then(function() {
              runAsync2(); 
    });   
    
   辦法4:
    runAsync1()
           .then(function(data){
               reurn runAsync2();  
           }).catch(function(e){
                console.log(e);
           });

二種解決辦法:
1、在錯(cuò)誤的行的下面添加 return null (這個(gè)辦法不是很好)
2上鞠、拿掉catch (這個(gè)辦法不是很好)
3斤彼、拿著原來(lái)的promise鸦泳,繼續(xù)then
4岔乔、都return一下

出現(xiàn)異常地方的截圖:


錯(cuò)誤1.png

錯(cuò)誤2.png

2591行船老,這里X為undefine,然后944行就進(jìn)入了if里面了圃酵,錯(cuò)誤警告信息就是在if里面柳畔。
如果拿掉catch,到了這一步會(huì)終止辜昵,不繼續(xù)往下執(zhí)行了


終止了.png

導(dǎo)致這個(gè)的警告原因:
我對(duì)上圖的猜想+下面展示的圖的理解:首先要知道Promise都是循環(huán)調(diào)用then()荸镊,由上一個(gè)then()調(diào)用下一個(gè)then(),這是一個(gè)鏈?zhǔn)揭?guī)則

runAsync1.then(){
   runAsync2(); //這里沒(méi)有return 一個(gè)then堪置,所以為導(dǎo)致錯(cuò)誤
}.catch(function(e){
})

當(dāng)你 return runAsync2();就可以結(jié)束錯(cuò)誤了,如果你的runAsync1是最后一個(gè)then张惹,那么就可以不用繼續(xù)return了舀锨,也不會(huì)報(bào)錯(cuò)。
宛逗。核心思想就是要鏈?zhǔn)秸{(diào)用坎匿,破壞鏈?zhǔn)降亩疾徽_。下圖是在gitHub上看到有人出現(xiàn)我這樣的警告雷激,它是調(diào)用somehingComplicated()出現(xiàn)的警告信息

別人的解讀.png

別人的截圖2.png

我對(duì)下圖的猜想+理解:他的道理跟上面的差不多替蔬,都必須要鏈?zhǔn)秸{(diào)用,那個(gè)人沒(méi)有retrun 一個(gè)Promise的對(duì)象回來(lái)屎暇,后續(xù)的then立即調(diào)用了
解釋.png

請(qǐng)勿打我臉承桥,哈哈哈哈哈哈
參考網(wǎng)址:
http://taoofcode.net/promise-anti-patterns/ (別人的截圖.png的地址)
https://github.com/petkaantonov/bluebird/issues/508 (解釋.png的地址)

感覺(jué)這篇博客還是沒(méi)寫(xiě)好,后面有時(shí)間根悼,我再重稿一次

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凶异,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挤巡,更是在濱河造成了極大的恐慌剩彬,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矿卑,死亡現(xiàn)場(chǎng)離奇詭異喉恋,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)母廷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)轻黑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人徘意,你說(shuō)我怎么就攤上這事苔悦。” “怎么了椎咧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵玖详,是天一觀的道長(zhǎng)把介。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蟋座,這世上最難降的妖魔是什么拗踢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮向臀,結(jié)果婚禮上巢墅,老公的妹妹穿的比我還像新娘。我一直安慰自己券膀,他們只是感情好君纫,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著芹彬,像睡著了一般蓄髓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舒帮,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天会喝,我揣著相機(jī)與錄音,去河邊找鬼玩郊。 笑死肢执,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的译红。 我是一名探鬼主播预茄,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼临庇!你這毒婦竟也來(lái)了反璃?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤假夺,失蹤者是張志新(化名)和其女友劉穎淮蜈,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體已卷,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梧田,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侧蘸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裁眯。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖讳癌,靈堂內(nèi)的尸體忽然破棺而出穿稳,到底是詐尸還是另有隱情,我是刑警寧澤晌坤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布逢艘,位于F島的核電站旦袋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏它改。R本人自食惡果不足惜疤孕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望央拖。 院中可真熱鬧祭阀,春花似錦、人聲如沸鲜戒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)袍啡。三九已至踩官,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間境输,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工颖系, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嗅剖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓嘁扼,卻偏偏與公主長(zhǎng)得像信粮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子趁啸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

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