性能優(yōu)化之可取消的異步操作

原文鏈接

概述

在項目開發(fā)中離不了的需要進(jìn)行一些異步操作神汹,這些異步操作在改善用戶體驗的同時也帶來了一些性能隱患曹仗。比如被冒,在某頁面進(jìn)行異步操作,異步操作還沒有完成時轮蜕,該頁面已經(jīng)關(guān)閉昨悼,這時由于異步操作的存在,導(dǎo)致系統(tǒng)無法及時的回收資源跃洛,從而導(dǎo)致性能的降低率触,甚至出現(xiàn)oom』憬撸總而言之葱蝗,異步操作在改善用戶體驗穴张,增強(qiáng)系統(tǒng)靈活性的同時也帶來了一些性能隱患,如果使用不當(dāng)則會帶來一些副作用两曼。

那么如何在使用異步操作的同

進(jìn)行等使用問題皂甘。

所以我們需要在編程中學(xué)會“舍得”,在適當(dāng)?shù)臅r候去取消一些異步操作悼凑。

為Promise插上可取消的翅膀

Promise是React Native開發(fā)過程中用于異步操作的最常用的API偿枕,但Promise沒有提供用于取消異步操作的方法。為了實現(xiàn)可取消的異步操作户辫,我們可以為Promise包裹一層可取消的外衣渐夸。

然后可以這樣使用取消操作:

上述方法,可以為異步操作添加可取消的功能渔欢,但是使用還是不夠方便:在每個使用makeCancelable的頁面都需要復(fù)制粘貼上述代碼墓塌。

下面我們做一下改進(jìn),將上述代碼抽離到一個文件中奥额。

這樣在使用的時候只需要將makeCancelable導(dǎo)入到你的相應(yīng)js文件中就可以了苫幢。

import??? makeCancelable??? from'../util/Cancelable'

可取消的網(wǎng)絡(luò)請求fetch

fetch是React Native開發(fā)過程中最常用的網(wǎng)絡(luò)請求API,和Promis一樣披坏,fetch也沒有提供用于取消已發(fā)出的網(wǎng)絡(luò)請求的API态坦。因為fetch返回的是一個Promise,所以我們可以借助上述方法棒拂,?來取消fetch所發(fā)出的網(wǎng)絡(luò)請求伞梯。

取消網(wǎng)絡(luò)請求:

this.cancelable.cancel();

在項目中的使用:

為了提高React Native應(yīng)用的性能,我們需要在組件卸載的時候不僅要主動釋放掉所持有的資源帚屉,也要取消所發(fā)出的一些異步請求操作谜诫。

component?? WillUnmount() {?? this.cancelable.cancel();?? }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市攻旦,隨后出現(xiàn)的幾起案子喻旷,更是在濱河造成了極大的恐慌,老刑警劉巖牢屋,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件且预,死亡現(xiàn)場離奇詭異,居然都是意外死亡烙无,警方通過查閱死者的電腦和手機(jī)锋谐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來截酷,“玉大人涮拗,你說我怎么就攤上這事。” “怎么了三热?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵鼓择,是天一觀的道長。 經(jīng)常有香客問我就漾,道長呐能,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任从藤,我火速辦了婚禮催跪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夷野。我一直安慰自己懊蒸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布悯搔。 她就那樣靜靜地躺著骑丸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妒貌。 梳的紋絲不亂的頭發(fā)上通危,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機(jī)與錄音灌曙,去河邊找鬼菊碟。 笑死,一個胖子當(dāng)著我的面吹牛在刺,可吹牛的內(nèi)容都是我干的逆害。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蚣驼,長吁一口氣:“原來是場噩夢啊……” “哼魄幕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起颖杏,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纯陨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后留储,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翼抠,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年获讳,在試婚紗的時候發(fā)現(xiàn)自己被綠了机久。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡赔嚎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尤误,我是刑警寧澤侠畔,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站损晤,受9級特大地震影響软棺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尤勋,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一喘落、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧最冰,春花似錦瘦棋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至篇裁,卻和暖如春沛慢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背达布。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工团甲, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人黍聂。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓躺苦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親分冈。 傳聞我的和親對象是個殘疾皇子圾另,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,107評論 2 356