摘要:生成器雖然有序可靠地管理回調(diào),但是我們還是希望如同步般表達(dá)異步。我們已經(jīng)知道生成器是作為生產(chǎn)迭代器的工廠(chǎng)函數(shù),同時(shí)我們還要知道生成器也是一個(gè)消息傳遞系統(tǒng)。為什么是生成器在生成器出現(xiàn)之前,程序代碼一旦執(zhí)行,就沒(méi)有停下來(lái)的時(shí)候,直到程序結(jié)束
回顧
所謂的異步,就是程序的一部分現(xiàn)在進(jìn)行,而另一部分則在將來(lái)運(yùn)行。異步處理的重點(diǎn)就是如何處理將來(lái)運(yùn)行的那一部分。
回調(diào)是 JavaScript 中最基本的異步模式,就是事先約定好將來(lái)要做的事然后回頭調(diào)用。簡(jiǎn)單直接,但也存在不信任、調(diào)用嵌套過(guò)深等問(wèn)題。對(duì)于編寫(xiě)代碼、維護(hù)代碼的我們而言,人類(lèi)的大腦還是習(xí)慣于線(xiàn)性的處理方式。
基于回調(diào)的異步模式所存在的問(wèn)題促使著我們尋求一種機(jī)制來(lái)保證回調(diào)的可信任,同時(shí)能更好的表達(dá)異步。這時(shí)候 Promise 出現(xiàn)了,Promise 的出現(xiàn),并非要取代回調(diào)。而是把回調(diào)轉(zhuǎn)交給了一個(gè)位于我們和其它工具之間的可信任的中介機(jī)制。Promise 鏈也提供(盡管并不完美)以順序的方式表達(dá)異步流的一個(gè)更好的方法,這有助于我們的大腦更好地計(jì)劃和維護(hù)異步 JavaScript 代碼。
生成器Promise 雖然有序、可靠地管理回調(diào),但是我們還是希望如同步般表達(dá)異步。
我們已經(jīng)知道生成器是作為生產(chǎn)迭代器的工廠(chǎng)函數(shù),同時(shí)我們還要知道生成器也是一個(gè)消息傳遞系統(tǒng)。
為什么是生成器在生成器出現(xiàn)之前,程序代碼一旦執(zhí)行,就沒(méi)有停下來(lái)的時(shí)候,直到程序結(jié)束
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/102897.html
摘要:對(duì)于引擎來(lái)說(shuō),兩者獲取堆棧的方式是不同的。對(duì)于引擎來(lái)說(shuō),堆棧信息附加在了函數(shù)所返回的并在鏈中傳遞,這樣函數(shù)也能在需要的時(shí)候獲取堆棧信息。使用可以實(shí)時(shí)監(jiān)控線(xiàn)上應(yīng)用的錯(cuò)誤,并獲取完整的堆棧信息。 譯者按: Async/Await真的只是簡(jiǎn)單的語(yǔ)法糖嗎?No! 原文:Asynchronous stack traces: why await beats .then() 作者: Math...
摘要:以往的異步方法無(wú)外乎回調(diào)函數(shù)和。出錯(cuò)了出錯(cuò)了總結(jié)接口遍歷器對(duì)象除了具有方法,還可以具有方法和方法。函數(shù)調(diào)用函數(shù),返回一個(gè)遍歷器對(duì)象,代表函數(shù)的內(nèi)部指針。 引言 接觸過(guò)Ajax請(qǐng)求的會(huì)遇到過(guò)異步調(diào)用的問(wèn)題,為了保證調(diào)用順序的正確性,一般我們會(huì)在回調(diào)函數(shù)中調(diào)用,也有用到一些新的解決方案如Promise相關(guān)的技術(shù)。 在異步編程中,還有一種常用的解決方案,它就是Generator生成器函數(shù)。顧...
摘要:所以異步編程對(duì)語(yǔ)言太重要。異步編程我們就以用戶(hù)注冊(cè)這個(gè)特別常見(jiàn)的場(chǎng)景為例,講講異步編程。這種層層嵌套被稱(chēng)為回調(diào)地獄。相比回調(diào)函數(shù)而言,代碼可讀性更高,代碼的執(zhí)行順序一目了然。函數(shù)內(nèi)部語(yǔ)句返回的值,會(huì)成為方法回調(diào)函數(shù)的參數(shù)。 單線(xiàn)程是Javascript語(yǔ)言最本質(zhì)的特性之一,Javascript引擎在運(yùn)行js代碼的時(shí)候,同一個(gè)時(shí)間只能執(zhí)行單個(gè)任務(wù)。 這種模式的好處是實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,執(zhí)行...
摘要:從開(kāi)始,就在引入新功能,來(lái)幫助更簡(jiǎn)單的方法來(lái)處理異步編程,幫助我們遠(yuǎn)離回調(diào)地獄。而則是為了更簡(jiǎn)潔的使用而提出的語(yǔ)法,相比這種的實(shí)現(xiàn)方式,更為專(zhuān)注,生來(lái)就是為了處理異步編程。 從Promise開(kāi)始,JavaScript就在引入新功能,來(lái)幫助更簡(jiǎn)單的方法來(lái)處理異步編程,幫助我們遠(yuǎn)離回調(diào)地獄。 Promise是下邊要講的Generator/yield與async/await的基礎(chǔ),希望你已...
閱讀 3939·2021-11-22 09:34
閱讀 1507·2021-11-04 16:10
閱讀 1741·2021-10-11 10:59
閱讀 3287·2019-08-30 15:44
閱讀 2052·2019-08-30 13:17
閱讀 3461·2019-08-30 11:05
閱讀 757·2019-08-29 14:02
閱讀 2633·2019-08-26 13:34