介紹
定義為 async
的函式是一個可以執行非同步操作但仍然看起來同步的函式。它的工作方式是使用 await
關鍵字在等待 Promise 解析或拒絕時推遲該功能。
注意: 非同步功能是有望包含在 ECMAScript 2017 標準中的第 4 階段(完成)提案 。
例如,使用基於 promise 的 Fetch API :
async function getJSON(url) {
try {
const response = await fetch(url);
return await response.json();
}
catch (err) {
// Rejections in the promise will get thrown here
console.error(err.message);
}
}
非同步函式總是返回一個 Promise 本身,因此你可以在其他非同步函式中使用它。
箭頭函式樣式
const getJSON = async url => {
const response = await fetch(url);
return await response.json();
}