前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Callback, Promise和Async/Await的对比

Callback, Promise和Async/Await的对比

作者头像
zhaokang555
发布2023-10-17 09:56:12
发布2023-10-17 09:56:12
12700
代码可运行
举报
运行总次数:0
代码可运行

Callback, PromiseAsync/Await的对比

Callback Hell

代码语言:javascript
代码运行次数:0
复制
getData1(function (data1) {
    console.log('我得到data1了')
    
    getData2(function (data2) {
        console.log('我得到data2了')
        console.log('data1 + data2 = ...')
    })
})

Promise

代码语言:javascript
代码运行次数:0
复制
function getData1() {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve(1111)
        }, 5000)
    })
}

function getData2() {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve(2222)
        }, 10000)
    })
}

function doSomething() {
    let p1 = getData1().then(function (data) {
        console.log('请求成功: data1 = ' + data)
        return data
    })
    let p2 = getData2().then(function (data) {
        console.log('请求成功: data2 = ' + data)
        return data
    })
    Promise.all([p1, p2]).then(function (data) {
        var sum = data[0] + data[1]
        console.log('data1 + data2 = ' + sum)
    })
}

Async/Await

代码语言:javascript
代码运行次数:0
复制
async function getData1() {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve(1111)
        }, 5000)
    })
}
async function getData2() {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve(2222)
        }, 5000)
    })
}

async function doSomething() {
    var data1 = await getData1()
    console.log('请求成功: data1 = ' + data1)

    var data2 = await getData2()
    console.log('请求成功: data2 = ' + data2)

    var sum = data1 + data2
    console.log('data1 + data2 = ' + sum)
    
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Callback, Promise和Async/Await的对比
    • Callback Hell
    • Promise
    • Async/Await
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档