亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

淺議 JavaScript 的 Promises/Futures 模式

Jason_Geng / 1609人閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/108913.html

相關(guān)文章

  • CSS及布局

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

    jaysun 評(píng)論0 收藏0
  • 理解JavaScript核心知識(shí)點(diǎn):原型

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

    iKcamp 評(píng)論0 收藏0
  • JS或Jquery

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

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

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

    Yangder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<