摘要:異步應(yīng)該是目前最簡單的異步方案了中新增了兩個關(guān)鍵詞??梢月暶饕粋€異步函數(shù),此函數(shù)需要返回一個對象??梢缘却粋€對象,并拿到結(jié)果。
async/await異步
先看一下同步狀態(tài)下 同步Async/Await應(yīng)該是目前最簡單的異步方案了,ES7 中新增了 async/await 兩個關(guān)鍵詞。async 可以聲明一個異步函數(shù),此函數(shù)需要返回一個 Promise 對象。await 可以等待一個 Promise 對象 resolve,并拿到結(jié)果。 一個栗子:
console.log(1); console.log(2); setTimeout(function(){ console.log(3) },3000); console.log(4); console.log(5)
上邊的打印結(jié)果大家想必都知道,這是同步狀態(tài)下的執(zhí)行順序
在看一個例子function p1(){ return new Promise(function(resolve,reject){ setTimeout(function(){ console.log("p1_2000"); resolve() },3000) }) } function p2(){ return new Promise(function(resolve,reject){ setTimeout(function(){ console.log("p2_2000"); resolve() },2000) }) } console.log("start"); p1(); p2(); console.log(end) //start //end //p2_2000 //p1_3000
咱們想做的是讓他按這個順序執(zhí)行下來咱們就要用到async、await
看代碼
function p1(){ return new Promise(function(resolve,reject){ setTimeout(function(){ console.log("p1_3000"); resolve() },3000) }) } function p2(){ return new Promise(function(resolve,reject){ setTimeout(function(){ console.log("p2_2000"); resolve() },2000) }) } //await 只能出現(xiàn)在異步函數(shù)里 async function shi(){ console.log("start") await p1(); await p2(); console.log("end") } p3=shi(); p3.then(function(){ console.log("結(jié)束") })
上邊函數(shù)執(zhí)行下來就是按照那個順序下來的,大家記住await 只能出現(xiàn)在異步函數(shù)里!配套使用
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84146.html
摘要:但是的的出現(xiàn)碉堡的新朋友,我們可以輕松寫出同步風(fēng)格的代碼同時又擁有異步機制,可以說是目前最簡單,最優(yōu)雅,最佳的解決方案了。不敢說這一定是終極的解決方案,但確實是目前最優(yōu)雅的解決方案 一、異步解決方案的進化史 JavaScript的異步操作一直是個麻煩事,所以不斷有人提出它的各種解決方案??梢宰匪莸阶钤绲幕卣{(diào)函數(shù)(ajax老朋友),到Promise(不算新的朋友),再到ES6的Gener...
摘要:是基于實現(xiàn)的,它不能用于普通的回調(diào)函數(shù)。憂慮對于,也許你有一些合理的懷疑它使得異步代碼不再明顯我們已經(jīng)習(xí)慣了用回調(diào)函數(shù)或者來識別異步代碼,我們可能需要花數(shù)個星期去習(xí)慣新的標志。 譯者按: Node.js的異步編程方式有效提高了應(yīng)用性能;然而回調(diào)地獄卻讓人望而生畏,Promise讓我們告別回調(diào)函數(shù),寫出更優(yōu)雅的異步代碼;在實踐過程中,卻發(fā)現(xiàn)Promise并不完美;技術(shù)進步是無止境的,這時...
摘要:使用時也要注意范圍和層級。服務(wù)端配置服務(wù)端使用,最簡單的方式是通過。云引擎是推出的服務(wù)器端運行環(huán)境,支持和環(huán)境,功能強大而且目前免費,結(jié)合,使原本復(fù)雜的開發(fā)工作變得簡單高效。目前也支持和海外節(jié)點,輕松滿足你的業(yè)務(wù)需求。 構(gòu)建一個應(yīng)用程序總是會面對異步調(diào)用,不論是在 Web 前端界面,還是 Node.js 服務(wù)端都是如此,JavaScript 里面處理異步調(diào)用一直是非常惡心的一件事情。以...
摘要:下面將簡單地描述一下一些日常常用場景加深對認識最普遍的異步操作就是請求我們也可以用來簡單模擬異步請求。其中是必須的如果省略了程序就不能按預(yù)期得到結(jié)果。 前言 async/await 語法用看起來像寫同步代碼的方式來優(yōu)雅地處理異步操作,但是我們也要明白一點,異步操作本來帶有復(fù)雜性,像寫同步代碼的方式并不能降低本質(zhì)上的復(fù)雜性,所以在處理上我們要更加謹慎, 稍有不慎就可能寫出不是預(yù)期執(zhí)行的代...
摘要:下面將簡單地描述一下一些日常常用場景加深對認識最普遍的異步操作就是請求我們也可以用來簡單模擬異步請求。其中是必須的如果省略了程序就不能按預(yù)期得到結(jié)果。 前言 async/await 語法用看起來像寫同步代碼的方式來優(yōu)雅地處理異步操作,但是我們也要明白一點,異步操作本來帶有復(fù)雜性,像寫同步代碼的方式并不能降低本質(zhì)上的復(fù)雜性,所以在處理上我們要更加謹慎, 稍有不慎就可能寫出不是預(yù)期執(zhí)行的代...
閱讀 2240·2021-11-22 13:52
閱讀 3887·2021-11-10 11:36
閱讀 1426·2021-09-24 09:47
閱讀 1099·2019-08-29 13:54
閱讀 3372·2019-08-29 13:46
閱讀 1954·2019-08-29 12:16
閱讀 2121·2019-08-26 13:26
閱讀 3479·2019-08-23 17:10