async/await是一種用于處理異步操作的Promise語法糖,使得編寫異步代碼變得更加簡單和易讀。通過使用async關(guān)鍵字聲明一個函數(shù)為異步函數(shù),并使用await關(guān)鍵字等待Promise的解析(完成或拒絕),以同步的方式編寫異步操作的代碼。
async函數(shù)是一個返回Promise對象的函數(shù),用于表示一個異步操作。在async函數(shù)內(nèi)部,可以使用await關(guān)鍵字等待一個Promise對象的解析,并返回其解析值。如果一個async函數(shù)拋出異常,那么該函數(shù)返回的Promise對象將被拒絕,并且異常信息會被傳遞給Promise對象的onRejected()方法。
下面是一個使用async/await的例子,其中模擬了一個異步操作,該操作會在3秒鐘后返回一個字符串
async function myAsyncFunction() {
const result = await new Promise((resolve) = > {
setTimeout(() = > {
resolve('Hello, world!');
}, 3000);
});
console.info(String(result)); // 輸出: Hello, world!
}
myAsyncFunction();
在上述示例代碼中,使用了await關(guān)鍵字來等待Promise對象的解析,并將其解析值存儲在result變量中。
需要注意的是,由于要等待異步操作完成,因此需要將整個操作包在async函數(shù)中。除了在async函數(shù)中使用await外,還可以使用try/catch塊來捕獲異步操作中的異常。
更多鴻蒙技術(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文章
4284瀏覽量
62325 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2302瀏覽量
42689 -
鴻蒙OS
+關(guān)注
關(guān)注
0文章
188瀏覽量
4359
發(fā)布評論請先 登錄
相關(guān)推薦
評論