摘要:翻譯瘋狂的技術(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
摘要:首先,需要來理清一些基礎(chǔ)的計算機編程概念編程哲學(xué)與設(shè)計模式計算機編程理念源自于對現(xiàn)實抽象的哲學(xué)思考,面向?qū)ο缶幊淌瞧湟环N思維方式,與它并駕齊驅(qū)的是另外兩種思路過程式和函數(shù)式編程。 JavaScript 中的原型機制一直以來都被眾多開發(fā)者(包括本人)低估甚至忽視了,這是因為絕大多數(shù)人沒有想要深刻理解這個機制的內(nèi)涵,以及越來越多的開發(fā)者缺乏計算機編程相關(guān)的基礎(chǔ)知識。對于這樣的開發(fā)者來說 J...
摘要:大潮來襲前端開發(fā)能做些什么去年谷歌和火狐針對提出了的標準,顧名思義,即的體驗方式,我們可以戴著頭顯享受沉浸式的網(wǎng)頁,新的標準讓我們可以使用語言來開發(fā)。 VR 大潮來襲 --- 前端開發(fā)能做些什么 去年谷歌和火狐針對 WebVR 提出了 WebVR API 的標準,顧名思義,WebVR 即 web + VR 的體驗方式,我們可以戴著頭顯享受沉浸式的網(wǎng)頁,新的 API 標準讓我們可以使用 ...
摘要:閱讀小札一閱讀前自大學(xué)課上,就開始接觸設(shè)計模式,但對設(shè)計模式卻鮮有研究與實踐。第二部分是核心部分,由淺到深講解個設(shè)計模式。設(shè)計模式遵循的原則所有設(shè)計模式罪訓(xùn)的一條原則就是找出程序中變化的地方,并將變化封裝起來。 閱讀小札 · 閱讀前 自大學(xué)Java課上,就開始接觸設(shè)計模式,但對設(shè)計模式卻鮮有研究與實踐。最近向公司反映和游說技術(shù)提升,得以獲得公司提供購書機會,借此認真學(xué)習前端學(xué)習之路的...
閱讀 3145·2021-11-19 09:40
閱讀 2445·2021-10-14 09:42
閱讀 1725·2021-09-22 15:34
閱讀 1456·2019-08-30 15:55
閱讀 791·2019-08-29 12:59
閱讀 422·2019-08-28 18:28
閱讀 1831·2019-08-26 13:42
閱讀 1536·2019-08-26 13:29