promise async和await的方法与使用

1.promise 将程序从异步的执行变成同步的一个过程
比如可以写一个简单的程序来

<script type="text/javascript">
function one(){
return 'I am one'
}
function two(){
//模拟一下网络请求
setTimeout(()=>{
return 'I am two'
},3000)
}
function three(){
return 'I am three'
}
function run(){
console.log(one())
console.log(two())
console.log(three())
}
//调用一下run函数
run()
</script>

此时,打印的结果又由

I am one 
I am two
I am three

变成了

I am one
undefined
I am three

是因为two有一个网络请求,但是此时是我没有输出结果的

是因为只有一个run方法,不会等到3秒之后再去执行一次的

要解决这个问题,需要把异步的执行变成同步的

需要改变function two 
function two(){
//这是一个标准的promise方法,resolve是一个请求成功返回的,reject是请求失败所要返回的
return new Promise((resolve,reject)=>{
//在这里也是用一个setTimeout去模拟一个网络请求
setTimeout(()=>{
resolve ('I am two‘’)
},3000)
})
}

此时的状态就是
在这里插入图片描述
此时的状态 是因为没有声明,要让two执行之后 再去执行three

此时我们要把 run改变一下状态,是要声明里面是有promise请求的
async function run(){
console.log(one())
console.log( await two())   //这个意思就是等two执行完了之后,再去执行three 
console.log(three())
}

他的输出结果就是,显示输出

I am one

等三秒之后输出

I am two
I am three

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值