- N +

await和async,await用法搭配

很多朋友對于await和async和await用法搭配不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧!

如何正確理解.NET 4.5和C#5.0中的async/await異步編程模式

安裝microsoft.bcl.async即可

該包由三個庫組成:microsoft.bcl、microsoft.bcl.async和microsoft.bcl.build。

await async和task.run的區(qū)別

async是一個修飾符,async定義的函數(shù)會默認的返回一個Promise對象resolve的值,因此對async函數(shù)可以直接進行then操作,返回的值即為then方法的傳入函數(shù)。

await也是一個修飾符,

await關鍵字只能放在async函數(shù)內(nèi)部,await關鍵字的作用就是獲取Promise中返回的內(nèi)容,獲取的是Promise函數(shù)中resolve或者reject的值

//如果await后面并不是一個Promise的返回值,則會按照同步程序返回值處理。

task.run

1)Task本身就是異步執(zhí)行的(4.5的那個類)。

2)控制數(shù)量和終止線程問題可以考慮這個模式:

async await 原理

當調(diào)用一個async函數(shù)時,會返回一個Promise對象(關鍵)

async函數(shù)中可能會有await表達式,await表達式會使async函數(shù)暫停執(zhí)行,直到表達式中的Promise解析完成后繼續(xù)執(zhí)行async中await后面的代碼并返回解決結果。

既然返回的是Promise對象,所以在最外層不能直接獲取其返回值,那么肯定可以用原來的方式:then()鏈來處理這個Promise對象

原理:

async/await函數(shù)其實就是一種語法糖

async/await是基于promise實現(xiàn)的,async函數(shù)其實就是把promise做了一個包裝

await返回值是一個Promise對象,它只是把await后面的代碼放到了Promise.then()

關于本次await和async和await用法搭配的問題分享到這里就結束了,如果解決了您的問題,我們非常高興。

返回列表
上一篇:
下一篇: