JS复习之async、await

    技术2026-08-13  14

    async

    在普通函数定义的前面加上async关键字 普通函数就变成了异步函数异步函数默认的返回值是Promise对象在异步函数内部使用throw关键字进行错误的抛出

    await

    await关键字只能在async function内部有效await 用于等待一个 Promise 对象,它可以暂停异步函数的执行,等待Promise对象返回结果后再向下执行函数

    示例1

    // async function fn () { // throw '发生了一些错误'; // return 123; // } // // console.log(fn ()) // fn ().then(function (data) { // console.log(data); // }).catch(function (err){ // console.log(err); // }) async function p1 () { return 'p1'; } async function p2 () { return 'p2'; } async function p3 () { return 'p3'; } async function run () { let r1 = await p1() let r2 = await p2() let r3 = await p3() console.log(r1) console.log(r2) console.log(r3) } run();

    示例2

    const fs = require('fs'); // 改造现有异步函数api 让其返回promise对象 从而支持异步函数语法 const promisify = require('util').promisify; // 调用promisify方法改造现有异步API 让其返回promise对象 const readFile = promisify(fs.readFile); async function run () { let r1 = await readFile('./1.txt', 'utf8') let r2 = await readFile('./2.txt', 'utf8') let r3 = await readFile('./3.txt', 'utf8') console.log(r1) console.log(r2) console.log(r3) } run();
    Processed: 0.009, SQL: 9