博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
promise async await 结合 demo1
阅读量:6120 次
发布时间:2019-06-21

本文共 2091 字,大约阅读时间需要 6 分钟。

// 模拟 post 异步接口 begainlet 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 方式 begainconst 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 1sgetP1 catch 2sgetP3 try 3sgetP4 catch 4sresult["reject 2000", "success 1000", "success 3000", "reject 4000"]

  

转载于:https://www.cnblogs.com/daji/p/10008649.html

你可能感兴趣的文章
luov之SMTP报错详解
查看>>
软件概要设计做什么,怎么做
查看>>
dwr
查看>>
java的特殊符号
查看>>
word2010中去掉红色波浪线的方法
查看>>
fabric上下文管理器(context mangers)
查看>>
JQuery-EasyUI Datagrid数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)
查看>>
并发和并行的区别
查看>>
php小知识
查看>>
Windows下安装、运行Lua
查看>>
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(二)
查看>>
初识中间件之消息队列
查看>>
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
查看>>
Spring常用注解
查看>>
我的友情链接
查看>>
PCS子层有什么用?
查看>>
查看端口,关闭端口
查看>>
代码托管平台简介
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>