• promise async await 结合 demo1


    // 模拟 post 异步接口 begain
    let post1 = ()=> {
        return new Promise((resolve, reject) => {
            setTimeout(()=>{
                reject('reject 2000')
            } , 2000)
        })
    }
    let post2 = ()=> {
        return new Promise((resolve, reject) => {
            setTimeout(()=>{
                resolve('success 1000')
            } , 1000)
        })
    }
    let post3 =  ()=> {
        return new Promise((resolve, reject) => {
            setTimeout(()=>{
                resolve('success 3000')
            } , 3000)
        })
    }
    let post4 =  ()=> {
        return new Promise((resolve, reject) => {
            setTimeout(()=>{
                reject('reject 4000')
            } , 4000)
        })
    }
    // 模拟 post 异步接口 end
    

      2、

    // 模拟 post 异步接口   try catch 方式 begain
    const getByApi1 = async ()=> {
        try {
            const data = await post1()
            console.log('getP1 try 2s')
            return data
        }catch(e){
            console.log('getP1 catch 2s')
            return e
        }
    }
    const getByApi2 = async ()=> {
        try {
            const data = await post2()
            console.log('getP2 try 1s')
            return data
        }catch(e){
            console.log('getP2 catch 1s')
            return e
        }
    }
    const getByApi3 = async ()=> {
        try {
            const data = await post3()
            console.log('getP3 try 3s')
            return data
        }catch(e){
            console.log('getP3 catch 3s')
            return e
        }
    }
    const getByApi4 = async ()=> {
        try {
            const data = await post4()
            console.log('getP4 try 4s')
            return data
        }catch(e){
            console.log('getP4 catch 4s')
            return e
        }
    }
    // 模拟 post 异步接口   try catch 方式 end
    

      3、

    Promise.all([getByApi1(), getByApi2(), getByApi3(), getByApi4()]).then((result) => {
        console.log('result')
        console.log(result)
    }).catch((error) => {
        console.log('error')
        console.log(error)
    })
    

      4、看结果

    1s后,console.log 'getP2 try 1s'  ;

    2s后,console.log 'getP1 try 2s' ; 

     3s后,console.log 'getP3 try 3s';

    4s后,console.log 'getP3 try 3s';

    然后 

    result
    ["reject 2000", "success 1000", "success 3000", "reject 4000"]
    getP2 try 1s
    getP1 catch 2s
    getP3 try 3s
    getP4 catch 4s
    result
    ["reject 2000", "success 1000", "success 3000", "reject 4000"]
    

      

  • 相关阅读:
    JS防Yahoo的选项卡导航特效
    纯CSS制作简洁带提示的导航
    绿色简单的CSS下拉菜单
    JS+CSS防FLASH效果竖向可折叠的滑动菜单
    鼠标划过快速展开的JS下拉菜单
    ASP.NET页面生命周期(转载)
    JS Eval函数作用(转载)
    Html十个不常用的标签(转载)
    CSS定位学习
    FireBug调试器相关(转载)
  • 原文地址:https://www.cnblogs.com/daji/p/10008649.html
Copyright © 2020-2023  润新知