介绍

定义为 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();
}