ionic2頁面回傳值照雁,關于Typescript的Promise承諾

剛入門,沒深究~ ?-答恶。-

經(jīng)典:javascript Promise介紹?來自谷歌的說明饺蚊,簡單直觀

來自谷歌

Promise 構造函數(shù)接受一個函數(shù)作為參數(shù)萍诱,該函數(shù)的兩個參數(shù)分別是 resolve 方法和 reject 方法。如果異步操作成功污呼,則用 resolve 方法將 Promise 對象的狀態(tài)裕坊,從「未完成」變?yōu)椤赋晒Α梗磸?pending 變?yōu)?resolved);如果異步操作失敗燕酷,則用 reject 方法將 Promise 對象的狀態(tài)籍凝,從「未完成」變?yōu)椤甘 梗磸?pending 變?yōu)?rejected)。


來自谷歌

then()有兩個參數(shù)苗缩,一個成功案例的回調饵蒂,另一個是失敗的情況。兩者都是可選的挤渐,因此您可以為成功或失敗的情況添加回調苹享。


來自谷歌


來自谷歌

這是一個很好的例子双絮,如果能夠獲取到對應url的xml請求浴麻,則req.status=200,在if中可以執(zhí)行你想做出的操作囤攀,并執(zhí)行resolve(req.response)软免,其中req.response是請求得到的結果,如果找不到則返回req.status=404焚挠,并reject()返回錯誤膏萧。

在ionic2中,頁面回傳值的方法:

同上所描述那般

做出一個承諾


來自tc

將該方法作為一個參數(shù)傳入push的頁面中

注意:最開始我本來是采用如下圖方式的蝌衔,但是很不幸榛泛,出現(xiàn)了問題,問題所在就是關于這個this的作用域問題噩斟。這里要用到ES6的箭頭函數(shù) Arrow Functions曹锨。普通function函數(shù)和箭頭函數(shù)的行為有一個微妙的區(qū)別,箭頭函數(shù)沒有它自己的this值剃允,箭頭函數(shù)內的this值繼承自外圍作用域沛简。


來自tc

回傳值,將需要傳過去的指丟入contactsCallback中斥废,即將數(shù)據(jù)從該頁面?zhèn)鞯缴弦粋€頁面中椒楣,并且then后,通過是執(zhí)行了resolve()還是reject()來識別是否成功牡肉,如果成功捧灰,pop掉當前頁面,否則輸出錯誤统锤。

來自tc



參考文章:JavaScript進階之路——認識和使用Promise毛俏,重構你的Js代碼?了解Promise

一直以來吩屹,JavaScript處理異步都是以callback的方式。近幾年隨著JavaScript開發(fā)模式的逐漸成熟拧抖,CommonJS規(guī)范順勢而生煤搜,其中就包括提出了Promise規(guī)范,Promise完全改變了js異步編程的寫法唧席,讓異步編程變得十分的易于理解擦盾。

1.什么是Promise

所謂Promise,字面上可以理解為“承諾”淌哟,就是說A調用B迹卢,B返回一個“承諾”給A,然后A就可以在寫計劃的時候這么寫:當B返回結果給我的時候徒仓,A執(zhí)行方案S1腐碱,反之如果B因為什么原因沒有給到A想要的結果,那么A執(zhí)行應急方案S2掉弛,這樣一來症见,所有的潛在風險都在A的可控范圍之內了。

Promise規(guī)范如下:

一個promise可能有三種狀態(tài):等待(pending)殃饿、已完成(fulfilled)谋作、已拒絕(rejected)

一個promise的狀態(tài)只可能從“等待”轉到“完成”態(tài)或者“拒絕”態(tài),不能逆向轉換乎芳,同時“完成”態(tài)和“拒絕”態(tài)不能相互轉換

promise必須實現(xiàn)then方法(可以說遵蚜,then就是promise的核心),而且then必須返回一個promise奈惑,同一個promise的then可以調用多次吭净,并且回調的執(zhí)行順序跟它們被定義時的順序一致

then方法接受兩個參數(shù),第一個參數(shù)是成功時的回調肴甸,在promise由“等待”態(tài)轉換到“完成”態(tài)時調用寂殉,另一個是失敗時的回調雷滋,在promise由“等待”態(tài)轉換到“拒絕”態(tài)時調用不撑。同時,then可以接受另一個promise傳入晤斩,也接受一個“類then”的對象或方法,即thenable對象澳泵。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市懂昂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌没宾,老刑警劉巖循衰,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铲敛,死亡現(xiàn)場離奇詭異茎杂,居然都是意外死亡睦优,警方通過查閱死者的電腦和手機摩窃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門峡谊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人院塞,你說我怎么就攤上這事辟躏√タ妫” “怎么了胁出?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵型型,是天一觀的道長段审。 經(jīng)常有香客問我全蝶,道長,這世上最難降的妖魔是什么寺枉? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任抑淫,我火速辦了婚禮,結果婚禮上姥闪,老公的妹妹穿的比我還像新娘始苇。我一直安慰自己,他們只是感情好筐喳,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布催式。 她就那樣靜靜地躺著,像睡著了一般避归。 火紅的嫁衣襯著肌膚如雪荣月。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天梳毙,我揣著相機與錄音哺窄,去河邊找鬼。 笑死,一個胖子當著我的面吹牛萌业,可吹牛的內容都是我干的坷襟。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼生年,長吁一口氣:“原來是場噩夢啊……” “哼婴程!你這毒婦竟也來了?” 一聲冷哼從身側響起抱婉,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤排抬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后授段,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹲蒲,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年侵贵,在試婚紗的時候發(fā)現(xiàn)自己被綠了届搁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡窍育,死狀恐怖卡睦,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情漱抓,我是刑警寧澤表锻,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站乞娄,受9級特大地震影響瞬逊,放射性物質發(fā)生泄漏。R本人自食惡果不足惜仪或,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一确镊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧范删,春花似錦蕾域、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至添忘,卻和暖如春采呐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昔汉。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工懈万, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拴清,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓会通,卻偏偏與公主長得像口予,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子涕侈,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內容