异步变同步

js 专栏收录该内容
8 篇文章 0 订阅
  1. promise.all
let behind = (time) => {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log( `${time}毫秒后` )
            resolve( `${time}毫秒后` )
        }, time)
    })
}

let p2 = behind(3000);
let p1 = behind(2000);
//两个以上ajax数据回来前显示loading
Promise.all([p2, p1]).then(res => {
    console.log('tag', res)
    // 2000毫秒后
    // 3000毫秒后
    // tag [ '3000毫秒后', '2000毫秒后' ]
}).catch(error => {
    console.log('tag', error)
})
  1. async await
function func1() {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve("func1 success")
        }, 1000)
    })
}

function func2() {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve("func2 success")
        }, 2000)
    })
}

let funcTest = async function() {
    try {
        let p2 = await func2();
        console.log(p2)
        let p1 = await func1();
        console.log(p1)
        //first. func2 success 
        //second func1 success
    } catch (error) {
        console.log(error)
    }

}
funcTest();
  • 0
    点赞
  • 2
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值