理解promise 与async await的用法

什么是 async/await?

async/await 是一种基于 Promise 之上的语法糖,比 Promise 的写法更像是同步操作。

首先,我们会使用 async 关键字将函式标记为异步函式,异步函式就是指返回值为 Promise 物件的函式。

在异步函式中我们可以调用其他的异步函式,不过不是使用 then(),而是使用 await 语法,await 会等待 Promise 完成之后直接返回最终的结果。

async/await的作用就是将异步逻辑,转化为同步的顺序来书写,以下代码

	function drive() {
			return new Promise((resolve, reject) => {
				setTimeout(function() {
					resolve('开车去超市')
				}, 2000)
			})
		}
	function shop() {
			return new Promise((resolve, reject) => {
				setTimeout(function() {
					resolve('到超市了,开始买东西')
				}, 1000)
			})
		}
		(async function(){
			 console.log(await drive());
			 console.log(await shop());
console.log('我在await之后触发');
		})()

输出结果

Promise

Promise 是在 ES6 出现的新功能,并且是用来优化过去回调函式 callback 的写法,可以避免回调地域

Promise 接受两个函式参数 resolve  reject

一个 Promise 一定会处于以下三种状态的其中一种

  1. pending:初始状态,执行了 executor,但还在等待中。
  2. fulfilled:表示操作完成,执行 resolve 函式。
  3. rejected:表示操作失败,执行 reject 函式。
	function drive() {
			return new Promise((resolve, reject) => {
				setTimeout(function() {
					resolve('开车去超市')
				}, 2000)
			})
		}

		function shop() {
			return new Promise((resolve, reject) => {
				setTimeout(function() {
					resolve('到超市了,开始买东西')
				}, 1000)
			})
		}

	(function(){
			drive().then((data)=>{
				console.log(data);
				return shop()
			}).then((data)=>{
				console.log(data);
			})
		})()


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值