• 我转过几个弯 绕过那个小雨楼
  • 拿着蒲扇摆着衣衫渡着紧箍咒
  • 不问天涯不停留 喝过几壶酒
  • 不过年少白头道义放胸口
  • 倘若明天之后 遥看前尘剑封侯
  • 似那天上神仙无所求
  • 朝朝暮暮君如梦醒十分不为何理由
  • 是真是假是惶恐是无休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 又过了几个弯 算尽天量道莫慌
  • 踏这田园闻这芳草香
  • 跌跌撞撞仗剑天涯折煞不枉无笔良
  • 是梦是幻是温柔是家乡
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 谁能与我一醉方休

koa框架3 基础入门之 async、await

188 1

async和await可以理解为generator的升级,因为generator需要一个runner库来运行它,这样一来就很麻烦,所有就有了async,其用法差不多。

await后面接异步操作或者同步操作,但是绝对不能为空,然后这个函数function开头接一个async

用法如下:

async function show() {
    let user = await $.ajax({
        url: "xxx/api",
        dataType: "json"
    });

    let items = null;
    if (user.login) {
        items = await $.ajax({
            url: "xxx/api",
            dataType: "json"
        });
    } else {
        if (user.vip) {
            items = await $.ajax({
                url: "xxx/api",
                dataType: "json"
            });
        } else {
            items = await $.ajax({
                url: "xxx/api",
                dataType: "json"
            });
        }
    }

    console.log(items);
};

show();

async的函数可以像普通函数那样调用,极大的方便了代码书写。

awite后面接什么

  1. promise对象
  2. 另一个async函数
  3. 普通函数
  4. 一个值

但是绝对不能为空。空的话就会报错。

错误处理

如果awite后面报错了,我们怎么处理。

使用了async后,函数变成了同步操作,他没有异步回调了,所以我们只能通过try catch 来进行捕获错误。

async function show() {
    try {
        let user = await $.ajax({
            url: "xxx/api",
            dataType: "json"
        });

        let items = null;
        if (user.login) {
            items = await $.ajax({
                url: "xxx/api",
                dataType: "json"
            });
        } else {
            if (user.vip) {
                items = await $.ajax({
                    url: "xxx/api",
                    dataType: "json"
                });
            } else {
                items = await $.ajax({
                    url: "xxx/api",
                    dataType: "json"
                });
            }
        }
    } catch (e) {
        console.log("出现错误", e);
    }


    console.log(items);
};

在async函数里面,将所有操作丢在try里面,如果某一处出现错误,catch便会捕获这个错误,从而达到错误提示的效果。

0
  • 本文分类:Node
  • 本文标签:asyncawaittrycatch
  • 流行热度:已超过 188 人围观了本文
  • 最后更新:2020年08月12日 - 16时40分48秒
  • 发布日期:2020年08月12日 - 16时40分48秒
  • 版权申明:本文系作者@木灵鱼儿原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。
微信收款码
微信收款码