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