继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第14天 3-17 async函数讲解

风与叶
关注TA
已关注
手记 14
粉丝 0
获赞 14

课程名称:毕业一课通,从开题到答辩高效完成
课程章节:3-17 async函数讲解
主讲老师:然冬

课程内容:
async函数
await

课程收货:
回调地狱 => promise的链式回调地狱 => async await 的函数请求。
await使用时一定要接async关键字,等一个async函数的promise返回请求。

代码演示:

const Koa = require('koa')

const app = new Koa()

// const getYearByTimeStamp =  require('./helpers/utils/index')

// console.log(getYearByTimeStamp(new Date().getTime()))
// console.log(utils)

// 开启一个http服务
// 接受http请求 并做处理,处理完响应
// https 默认端口 443

// context 上下文 当前请求的相关信息都在里面
app.use(async(context, next) =>{
    console.log(1);
    log(startTime);
    await next();
    console.log(4);
    log(endTime);
});

app.use(async(context, next) =>{
    console.log(2);
    await next();
    console.log(5);
});

app.use(async(context, next) =>{
    console.log(3);
    await next();
    console.log(6);
});


app.listen(3000, () =>{
    console.log('启动成功')
})

console.log('112233')
//async-await

// const fn2 = async () =>{
//     return 1;
// }

// console.log(fn())

// fn().then((res) =>{
//     return new Promise((resolve,reject) =>{
//         resolve(1);
//     })
// })

// fn().then((res))

// const fn = async function (){

// }

// promises
// 回调函数
// 一个接口,要拿到数据,跑5个前置接口
// const request = (arg ,cb ) =>{
//     setTimeout(() => {
//         console.log(arg);
//         cb(arg + 1);
//     }, 1000);
// }

// request(1,function(res1){
//     request(res1,function(res2){
//         request(res2,function(res3){
//             request(res3,function(res4){
//                 request(res4,function(res5){
//                     // 回调地狱
//                     console.log('res',res5);
//                 })
//             })
//         })
//     })
// })

const request = (arg,isReject) =>{
    return new Promise((resolve, reject) =>{
        setTimeout(() => {
            console.log(arg)
            if(isReject){
                reject('出错了')
                return;
            }
            console.log(arg)
            resolve(arg+1)
        }, 1000);
    })
}

// async 函数 返回的是一个promise
const fn = async() =>{
    const res1 = await request(1);
    const res2 = await request(res1);
    const res3 = await request(res2);
    const res4 = await request(res3);
    console.log(res4);
}

fn();

// request(1).then((res1) =>{
//     return request(res1);
// })
// .then((res2) =>{
//     return request(res2);
// })
// .then((res3) =>{
//     return request(res3)
// })
// .then((res4) =>{
//     return request(res4)
// })
// .then((res5) =>{
//     console.log(res5)
// });

图片描述

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP