一開始看書上的介紹,寫了好多頁,還有 * 號,嚇得我都沒敢看。
后來發(fā)現(xiàn)我可以先不去看理論,選學(xué)會如何使用不久行了嗎?
于是發(fā)現(xiàn)了,返回Promise的函數(shù),都可以使用await。
而 await 是等待的意思,既然這樣那么就需要一個等待的范圍,因?yàn)槿绻辉O(shè)定一個范圍的話,那么就變成“假死”了。這不符合 js 的初衷。
而這個設(shè)定的范圍就是 async。
比如我們可以這樣寫:
function fun1() {
return new Promise((resolve, reject) => {
resolve('aa')
}
}
async function foo() {
const aa = await fun1()
}
foo()
基本就是這樣。
另外發(fā)現(xiàn)一個問題,就是不能套娃。
Promise 可以變成 await,但是內(nèi)部卻不能用await,用了就會報錯。
也許是因?yàn)闊o法限定等待范圍吧。
總之,現(xiàn)在基本會用了,有空再去研究原理。