java 模拟async await_Async/Await小记录

Async/Await简介

async/await是写异步代码的新方式,以前的方法有回调函数和Promise。

async/await是基于Promise实现的,它不能用于普通的回调函数。

async/await与Promise一样,是非阻塞的。

async/await使得异步代码看起来像同步代码,这正是它的魔力所在。

Async/Await语法

Fn函数有个promise resolve结果。并且打印出执行的顺序

const fn = () => {

console.log(1)

Promise.resolve('ddd')

console.log(2)

return '000'

}

这里调用了上面的fn,并且打印执行顺序,注意await关键字只能用在async定义的函数内,async函数会隐式地返回一个promise,该promise的reosolve值就是函数return的值。(示例中reosolve值就是字符串”555”)

const api = async () => {

console.log(3)

console.log('test', await fn())

console.log(4)

return '555'

}

这里使用api()时执行上面的模拟异步函数,但是后面如果使用.then 则函数需要有返回值,并且.then里返回的也是一个promise

api().then(res => {console.log(res)})

f1406e0b3d6b889594eb18c69ba972a7.png

5

api().then(res => {console.log(res); return '666'})

6

a74b4f00d42c721063e94e240a8f040b.png

当然实际使用时使用Async/Await语法就不需要写.then,因为可以直接得到fn返回的结果,在上面就是000,而fn中的promise.resolve没关系,因为不是return的他~

var api = async () => {

const res = await fn()

return res

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值