JavaScript中的異步函數


JavaScript中的異步函數

ES8 的 async/await 旨在解決利用異步結構組織代碼的問題。為此, ECMAScript 對函數進行了擴展,為其增加了兩個新關鍵字: async 和 await。

async 關鍵字用於聲明異步函數。這個關鍵字可以用在函數聲明、函數表達式、箭頭函數和方法上

使用 async 關鍵字可以讓函數具有異步特征,但總體上其代碼仍然是同步求值的。而在參數或閉包方面,異步函數仍然具有普通 JavaScript 函數的正常行為

不過,異步函數如果使用 return 關鍵字返回了值(如果沒有 return 則會返回 undefined),這個值會被 Promise.resolve()包裝成一個期約對象。異步函數始終返回期約對象。在函數外部調用這個函數可以得到它返回的期約

	async function foo() {
			console.log(1);
			return 3;
		}
		foo().then(console.log)
		console.log(2)

2 await

因為異步函數主要針對不會馬上完成的任務,所以自然需要一種暫停和恢復執行的能力。使用 await關鍵字可以暫停異步函數代碼的執行,等待期約解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM