js 处理异步 callback、Promise、async+await三种方式

关于javascript处理异步的三种方式的简单介绍

// 1、很久以前处理异步
// callback 回调方式
function ajax(fn) {
    setTimeout(() => {
        console.log('异步')
        fn()
    }, 1000)
}
ajax(() => {
    console.log('异步结束')
})
// 但是 如果请求多的话
// 会出现回调地狱
ajax(() => {
    console.log('第一个异步处理结束')
    ajax(() => {
        console.log('第二个异步处理结束')
        ajax(() => {
            console.log('第三个异步执行结束')
        })
    })
})

// 2、es6 Promise方法
function delay(word) {
    return new Promise((resolve, reject)=> {
        setTimeout(() => {
            resolve(word)
        }, 2000)
    })
}
// 使用promise
delay('老大')
    .then(res => {
        console.log(res)
        return delay('老二')
    })
    .then(res => {
        console.log(res)
        return delay('老三')
    })
    .then(res => {
        console.log(res)
    })


// delay方法不变
// 使用 async + await  !!! async一定要和await一起使用
async function start() {
    // await 必须在async内部使用  等待一个异步
    const wrod1 = await delay('佟丽娅')
    console.log(wrod1)
    const wrod2 = await delay('郭德纲')
    console.log(wrod2)
    const wrod3 = await delay('岳云鹏')
    console.log(wrod3)
}
start()

可以复制下来直接用Node运行看结果

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值