async/await是一種用于處理異步操作的Promise語(yǔ)法糖,使得編寫(xiě)異步代碼變得更加簡(jiǎn)單和易讀。通過(guò)使用async關(guān)鍵字聲明一個(gè)函數(shù)為異步函數(shù),并使用await關(guān)鍵字等待Promise的解析(完成或拒絕),以同步的方式編寫(xiě)異步操作的代碼。
async函數(shù)是一個(gè)返回Promise對(duì)象的函數(shù),用于表示一個(gè)異步操作。在async函數(shù)內(nèi)部,可以使用await關(guān)鍵字等待一個(gè)Promise對(duì)象的解析,并返回其解析值。如果一個(gè)async函數(shù)拋出異常,那么該函數(shù)返回的Promise對(duì)象將被拒絕,并且異常信息會(huì)被傳遞給Promise對(duì)象的onRejected()方法。
下面是一個(gè)使用async/await的例子,其中模擬了一個(gè)異步操作,該操作會(huì)在3秒鐘后返回一個(gè)字符串
async function myAsyncFunction() {
const result = await new Promise((resolve) = > {
setTimeout(() = > {
resolve('Hello, world!');
}, 3000);
});
console.info(String(result)); // 輸出: Hello, world!
}
myAsyncFunction();
在上述示例代碼中,使用了await關(guān)鍵字來(lái)等待Promise對(duì)象的解析,并將其解析值存儲(chǔ)在result變量中。
需要注意的是,由于要等待異步操作完成,因此需要將整個(gè)操作包在async函數(shù)中。除了在async函數(shù)中使用await外,還可以使用try/catch塊來(lái)捕獲異步操作中的異常。
更多鴻蒙技術(shù)已更新在 ↓
async function myAsyncFunction() {
try {
const result = await new Promise((resolve) = > {
resolve('Hello, world!');
});
} catch (e) {
console.error(`Get exception: ${e}`);
}
}
myAsyncFunction();
審核編輯 黃宇
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4308瀏覽量
62445 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2321瀏覽量
42749 -
鴻蒙OS
+關(guān)注
關(guān)注
0文章
188瀏覽量
4371
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論