使用async await 總結

2021-09-29 01:45:33 字數 2555 閱讀 3922

async/await 迴圈並行處理

同步:同一執行緒之中,順序完成不同的操作,是一種阻塞模式;後乙個請求操作需要等待前乙個操作完成之後,才能發出。

非同步:需要開啟不同的執行緒,是非阻塞模式。

同步類似於打**,而非同步相當於發簡訊。

傳送請求獲取天氣非同步操作,利用node-fetch完成請求

const fetch =

require

("node-fetch");

async

function

getweather

(city)`;

const response =

await

fetch

(url)

const

=await response.

json()

console.

log(data)

}getweather

('深圳'

)

const fetch =

require

("node-fetch");

async

function

getweather

(city)`;

const response =

await

fetch

(url)

return

await response.

json()

}getweather

('深圳').

then((

)=>`)

console.

log(

`天氣:$`

)})

理論上可以作用在所有的物件上,但是非promise物件都會通過promise.resolve()轉成promise物件

const fetch =

require

("node-fetch");

class

apiweather

` const response =

await

fetch

(url)

return

await response.

json()

}};(

async()

=>`)

console.

log(

`天氣:$`

)})(

)

序列是指多個任務時,各個任務按順序執行,完成乙個之後才能進行下乙個。

並行指的是多個任務可以同時執行。非同步是多個任務並行的前提條件。並行用時更短。將請求先賦給變數,await請求變數

通過promise.all(),傳入乙個請求陣列

const fetch =

require

('node-fetch'

)const

sleep

=(timeout =

2000

)=>

newpromise

(resolve =>

)const getweather =

async

(city)

=>

` const response =

await

fetch

(url)

return

await response.

json()

}const showweather =

async()

=>`)

console.

log(

`天氣:$`

) console.

log(

`城市:$`

) console.

log(

`天氣:$`

) console.

timeend

('showweather')}

showweather

()

const fetch =

require

('node-fetch'

)const bluebird =

require

('bluebird'

)const getweather =

async

(city)

=>

` const response =

await

fetch

(url)

return

await response.

json()

}const showweather =

async()

=>`)

console.

log(

`天氣:$`

)}console.

timeend

('showweather')}

showweather

()

async await基本使用

asunc await的底層學習可以學習es6,它其實是乙個genterator的語法糖。執行非同步async function timer 2000 非同步promise結束 console.log ret,num 這裡等待非同步執行完,所以結果是11,11 return ret timer th...

async await使用的要點

async await的使用 1 如果乙個方法標註了async,則其返回值只能是 void,task,task三者之一 2 如果非同步方法中沒有await,那麼這個方法將會以同步方式執行 3 單個async方法中可以擁有多個await 4 當遇到await表示式時,呼叫執行緒將會掛起,知道await...

async await結合axios使用

async 和 await是es7的語法 async和await必須結合使用,有await必須要使用async,有async不一定要使用await,await是將非同步轉為同步 用async修飾的事件,如果有retrun返回,則返回的是promise物件 async修飾的非同步事件a,在其他方法b中...