成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

淺議 JavaScript 的 Promises/Futures 模式

Jason_Geng / 1535人閱讀

摘要:翻譯瘋狂的技術(shù)宅原文本文首發(fā)微信公眾號歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章隨著使用的不斷增加,異步事件驅(qū)動的應(yīng)用程序變得越來越流行。本文首發(fā)微信公眾號歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章

翻譯:瘋狂的技術(shù)宅
原文:http://davidshariff.com/blog/...

本文首發(fā)微信公眾號:jingchengyideng
歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章

隨著 JavaScript 使用的不斷增加,異步事件驅(qū)動的應(yīng)用程序變得越來越流行。 但是,許多開發(fā)者經(jīng)常面臨的一個問題是:在異步環(huán)境中進行依賴于結(jié)果的操作。

你可能經(jīng)常會遇到類似的情況:

doA(function(aResult) {
    // 在b內(nèi)做一些事情然后開始回調(diào)
    doB(aResult, function(bResult) {
        // b完成后,在c中做一些事情并開始回調(diào)
        doC(bResult, function(cResult) {
            // 完成后,在這里用doC()的結(jié)果做一些事情
        });
    });
});

由于每個步驟都需要前面的步驟結(jié)果,所以經(jīng)常會看到在回調(diào)中嵌套回調(diào)函數(shù)的模式。 這些嵌套回調(diào)最終會難以在較大的異步應(yīng)用程序中維護、理解和規(guī)范。 簡單的異步流程會變得越來越復(fù)雜。

在這種情況下使用的解決方案是 Promise/Futures 模型,它表示尚未發(fā)生的回調(diào)結(jié)果。 這個概念非常簡單,它不是在一個函數(shù)返回結(jié)果之前阻塞并等待其完成,而是在調(diào)用對象時立即返回其承諾的將要完成的結(jié)果。 這會導(dǎo)致非阻塞行為:

doA()
    .then(function() { return doB(); })
    .then(function() { return doC(); })
    .done(function() { /* 在這里做最后要做的事情 */ });

使用 Promise / Future 模型編寫代碼可以享受到使用嵌套回調(diào)的大部分優(yōu)點,同時能夠使代碼更清晰,更結(jié)構(gòu)化,在大多數(shù)異步環(huán)境下,這些代碼更易于維護,理解和規(guī)范。

Promise / Future 并不是最終解決方案,還有很多其他解決方案,這些解決方案也都有各自的優(yōu)缺點,應(yīng)該針對不同的情況使用它們。

本文首發(fā)微信公眾號:jingchengyideng
歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108913.html

相關(guān)文章

  • CSS及布局

    摘要:經(jīng)過半年的打磨,正式發(fā)布,主要是新增了一些常用組件,并使用命名,為接下來的微信小程序開發(fā)做好準備。這兩種方式實現(xiàn)的瀑布流式布局均支持首屏和網(wǎng)頁窗口大小改變時的列數(shù)自適應(yīng)。主要是對于標準里的布局方式草案中的布局方式進行一些總結(jié)。 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個問題:怎樣通過 CSS 簡單而優(yōu)雅的實現(xiàn)水平、垂直同時居中。記得剛開始學(xué)習 CSS 的時候,看...

    jaysun 評論0 收藏0
  • 理解JavaScript核心知識點:原型

    摘要:首先,需要來理清一些基礎(chǔ)的計算機編程概念編程哲學(xué)與設(shè)計模式計算機編程理念源自于對現(xiàn)實抽象的哲學(xué)思考,面向?qū)ο缶幊淌瞧湟环N思維方式,與它并駕齊驅(qū)的是另外兩種思路過程式和函數(shù)式編程。 JavaScript 中的原型機制一直以來都被眾多開發(fā)者(包括本人)低估甚至忽視了,這是因為絕大多數(shù)人沒有想要深刻理解這個機制的內(nèi)涵,以及越來越多的開發(fā)者缺乏計算機編程相關(guān)的基礎(chǔ)知識。對于這樣的開發(fā)者來說 J...

    iKcamp 評論0 收藏0
  • JS或Jquery

    摘要:大潮來襲前端開發(fā)能做些什么去年谷歌和火狐針對提出了的標準,顧名思義,即的體驗方式,我們可以戴著頭顯享受沉浸式的網(wǎng)頁,新的標準讓我們可以使用語言來開發(fā)。 VR 大潮來襲 --- 前端開發(fā)能做些什么 去年谷歌和火狐針對 WebVR 提出了 WebVR API 的標準,顧名思義,WebVR 即 web + VR 的體驗方式,我們可以戴著頭顯享受沉浸式的網(wǎng)頁,新的 API 標準讓我們可以使用 ...

    CatalpaFlat 評論0 收藏0
  • JavaScript設(shè)計模式與開發(fā)實踐》 —— <閱讀小札·一>

    摘要:閱讀小札一閱讀前自大學(xué)課上,就開始接觸設(shè)計模式,但對設(shè)計模式卻鮮有研究與實踐。第二部分是核心部分,由淺到深講解個設(shè)計模式。設(shè)計模式遵循的原則所有設(shè)計模式罪訓(xùn)的一條原則就是找出程序中變化的地方,并將變化封裝起來。 閱讀小札 · 閱讀前 自大學(xué)Java課上,就開始接觸設(shè)計模式,但對設(shè)計模式卻鮮有研究與實踐。最近向公司反映和游說技術(shù)提升,得以獲得公司提供購書機會,借此認真學(xué)習前端學(xué)習之路的...

    Yangder 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<